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?
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/
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
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.
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
où --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.