Docker propose plusieurs mécanismes de journalisation désignés logging drivers. Un mécanisme de journalisation est actif par défaut et peut être redéfinit explicitement.
Pour afficher les paramètres de configuration du logging driver utilisé par défaut par le daemon Docker:
docker info --format '{{.LoggingDriver}}'
Pour définir des options ou modifier le mécanisme de journalisation par défaut du daemon il faudra modifier le fichier de configuration daemon.json
Ci-dessous un exemple de configuration permettant de limiter le volume de logs via les options max-size
et max-file
{ "log-driver": "json-file", "log-opts": {"max-size": "10m", "max-file": "3"} }
Pour redéfinir le mécanisme de journalisation d'un conteneur, on peut utiliser les options --log-driver et --log-opt directement sur la ligne de commande lors de la création du conteneur:
# Désactive la journalisation docker run -it --log-driver none alpine ash # Journaliser en limitant la volumétrie docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 myapp:version
Ci-dessous la syntaxe à utiliser avec docker-compose
version: '3.7' services: my-app: image: my-app:latest logging: driver: "json-file" options: max-size: "10m" max-file: "5"
Le driver “local” permet d'enregistrer les logs dans un format binaire. Il est plus compact et plus rapide que le stockage par défaut “json-file”. L'inconvénient du driver local et qu'il ne pourra pas être utilisé avec certains programmes externes de type parsers/forwarders qui ont besoin d'un accès direct au fichier de log au format JSON.