Docker¶
Configuration de la rétention des traces¶
La configuration des traces sous PostgreSQL est importante. Celle de Docker également.
Par défaut, le log-driver
de Docker est configuré sur json
. Les traces des conteneurs vont être stockées au format json
sur le serveur hôte.
L’emplacement des fichiers liés au conteneur sera du type :
ou e5be47...
est l’identifiant unique du conteneur.
La commande qui permet de vérifier la configuration est :
Prenons l’exemple d’un conteneur PostgreSQL. Ses traces sont envoyées sur la sortie standard et se trouvent être gérées par Docker lui même. Par défaut, aucune limite sur la taille du fichier de traces n’est définie, pouvant alors engendrer une saturation de disque si les traces d’un conteneur sont importantes et jamais purgées.
Pour configurer le log-driver
json
, il faut modifier le fichier /etc/docker/daemon.json
.
À titre d’exemple, voici une configuration pour une rotation sur trois fichiers de 50 Mo.
$ cat /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
}
}
Un redémarrage de Docker est nécessaire pour la prise en compte de la nouvelle configuration pour tout nouveau conteneur.
Cette configuration peut aussi se faire au lancement du conteneur en passant les options
--log-driver json-file --log-opt max-size=50m --log-opt max-file=3
à la commande docker run
.
Les traces d’un conteneur Docker peuvent être affichées avec la commande docker logs -f id_conteneur
ou en regardant directement dans le fichier de traces du conteneur :
tail -f /var/lib/docker/containers/e5be4783b05a7b6ae6923f89c7e705a88dc64f4b714bd041e0040fa93e3f60a8/e5be4783b05a7b6ae6923f89c7e705a88dc64f4b714bd041e0040fa93e3f60a8-json.log