Rotation des journaux

Docker garde tout ce qu'un conteneur affiche, par défaut dans un fichier json-file qui ne disparaît qu'avec le conteneur. La rotation le plafonne : max-size et max-file, par conteneur ou pour tout le démon.

Comment ça marche

logging: options: max-size: "50m", max-file: "3" garde au plus trois fichiers de 50 Mo et supprime le plus ancien. Le pilote local fait tourner et compresse par défaut (100 Mo). log-opts dans /etc/docker/daemon.json fixe une valeur par défaut pour tout nouveau conteneur. Les nouvelles options ne s'appliquent qu'aux conteneurs créés ensuite.

Ce qui casse

Un seul conteneur bavard (journaux debug oubliés, une erreur en boucle) remplit le disque en quelques heures ; ensuite la base ne peut plus écrire, les builds échouent et d'autres conteneurs plantent. docker system df ne compte pas ces fichiers. driver: none sauve le disque mais ne laisse rien à lire quand quelque chose tourne mal.

Dans compose.yaml

x-logging: &logging
  driver: json-file
  options:
    max-size: "50m"
    max-file: "3"

services:
  api:
    image: shop-api:4.2
    logging: *logging

Regarde-le casser, puis répare-le

Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.