web-dev-qa-db-fra.com

Les journaux du conteneur Docker occupent tout mon espace disque

J'exécute un conteneur sur une machine virtuelle. Mon conteneur écrit les journaux par défaut dans le fichier /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log jusqu'à ce que le disque soit plein.

Actuellement, je dois supprimer manuellement ce fichier pour éviter que le disque ne soit plein. J'ai lu que dans Docker 1.8, il y aurait un paramètre pour faire pivoter les journaux . Que recommanderiez-vous comme solution de contournement actuelle?

61
poiuytrez

Docker 1.8 a été publié avec une option de rotation du journal. Ajouter:

--log-opt max-size=50m 

quand le conteneur est lancé fait le tour. Vous pouvez en savoir plus sur: https://docs.docker.com/engine/admin/logging/overview/

73
poiuytrez

ATTENTION: ceci concerne la version 2 de docker-compose

Exemple:

version: '2'
services:
  db:
    container_name: db
    image: mysql:5.7
    ports:
      - 3306:3306
    logging:
      options:
        max-size: 50m
30
jaks

Attention: cet article concerne les versions de docker <1.8 (qui ne possèdent pas le --log-opt option)

Pourquoi n'utilisez-vous pas logrotate (qui prend également en charge la compression)?

/var/lib/docker/containers/*/*-json.log {
hourly
rotate 48
compress
dateext
copytruncate
}

Configurez-le directement sur votre CoreO Node ou déployez un conteneur (par exemple, https://github.com/tutumcloud/logrotate )) qui monte/var/lib/docker faire tourner les journaux.

7
gtonic

Passer les options du journal lors de l'exécution d'un conteneur. Un exemple sera comme suit

Sudo docker run -ti --name visruth-cv-container  --log-opt max-size=5m --log-opt max-file=10 ubuntu /bin/bash

--log-opt max-size=5m spécifie la taille maximale du fichier journal de 5 Mo et --log-opt max-file=10 spécifie le nombre maximal de fichiers pour la rotation.

2
Visruth