Limiter les logs de docker pour préserver l'espace disque

Des applications dockerisées comme gitlab produisent une quantité significative de logs. Chose que nous pouvons vérifier visuellement en exécutant docker logs –tail=10 -f gitlab.

Ces logs biens qu'ils soient affichés à l'écran sont également sauvegardé par docker dans des fichiers spéciaux appartenant aux containers.

La commande suivante peut lister les fichiers de logs de tous les containers s'exécutant sur la machine :

$ find /var/lib/docker/containers -type f -name "*.log" -exec du -h {} \;

La partie -exec du -h {} \; nous permet d'affichier l'usage disque de chaque fichier.

Le résultat de la commande est le suivant :

11G     /var/lib/docker/containers/610c76110a..../610c76110a...-json.log

En trois semaines d'exécution le fichier de log de l'application gitlab a cumulé 11Giga octets de données.

Cette consommation peut rapidement saturer l'espace disque.

Heureusement que docker accepte des options de limitation de taille et de rotation sur les fichiers de logs qu'il conserve.

Ces options peuvent être configurées dans le fichier /etc/docker/daemon.json.

Ci-dessous une exemple qui fait une rotation sur tous les fichiers de logs une fois atteints 8MB.

{
    "log-opts": {
        "max-size": "8m",
        "max-file": "5"
    }
}

Le service docker doit être redémarré pour charger ces configurations.

$ sudo systemctl restart docker

Références

  • system_administration/infrastructure/docker_logs.txt
  • Last modified: 2023/01/28 10:15
  • by aziz