Pilote de logging JSON File
Par défaut, Docker capture la sortie standard (et l'erreur standard) de tous vos conteneurs,
et les écrit dans des fichiers en utilisant le format JSON. Le format JSON annote chaque ligne avec son
origine (stdout
ou stderr
) et son horodatage. Chaque fichier de log contient des informations sur
un seul conteneur.
{
"log": "Log line is here\n",
"stream": "stdout",
"time": "2019-01-01T11:11:11.111111111Z"
}
WarningLe pilote de logging
json-file
utilise un stockage basé sur fichiers. Ces fichiers sont conçus pour être exclusivement accessibles par le daemon Docker. Interagir avec ces fichiers avec des outils externes peut interférer avec le système de logging de Docker et résulter en un comportement inattendu, et devrait être évité.
Utilisation
Pour utiliser le pilote json-file
comme pilote de logging par défaut, définissez les clés log-driver
et log-opts
aux valeurs appropriées dans le fichier daemon.json
, qui se
trouve dans /etc/docker/
sur les hôtes Linux ou
C:\ProgramData\docker\config\
sur Windows Server. Si le fichier n'existe pas, créez-le d'abord. Pour plus d'informations sur
la configuration de Docker en utilisant daemon.json
, voir
daemon.json.
L'exemple suivant définit le pilote de log à json-file
et définit les options max-size
et max-file
pour activer la rotation automatique des logs.
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
NoteLes options de configuration
log-opts
dans le fichier de configurationdaemon.json
doivent être fournies sous forme de chaînes. Les valeurs booléennes et numériques (telles que la valeur pourmax-file
dans l'exemple ci-dessus) doivent donc être entourées de guillemets ("
).
Redémarrez Docker pour que les changements prennent effet pour les conteneurs nouvellement créés. Les conteneurs existants n'utilisent pas automatiquement la nouvelle configuration de logging.
Vous pouvez définir le pilote de logging pour un conteneur spécifique en utilisant le
drapeau --log-driver
avec docker container create
ou docker run
:
$ docker run \
--log-driver json-file --log-opt max-size=10m \
alpine echo hello world
Options
Le pilote de logging json-file
supporte les options de logging suivantes :
Option | Description | Valeur d'exemple |
---|---|---|
max-size |
La taille maximale du log avant qu'il soit rotaté. Un entier positif plus un modificateur représentant l'unité de mesure (k , m , ou g ). Par défaut -1 (illimité). |
--log-opt max-size=10m |
max-file |
Le nombre maximum de fichiers de log qui peuvent être présents. Si la rotation des logs crée des fichiers excédentaires, le fichier le plus ancien est supprimé. Efficace seulement quand max-size est aussi défini. Un entier positif. Par défaut 1. |
--log-opt max-file=3 |
labels |
S'applique lors du démarrage du daemon Docker. Une liste séparée par des virgules d'étiquettes liées au logging que ce daemon accepte. Utilisé pour les options avancées de tag de log. | --log-opt labels=production_status,geo |
labels-regex |
Similaire et compatible avec labels . Une expression régulière pour correspondre aux étiquettes liées au logging. Utilisé pour les options avancées de tag de log. |
--log-opt labels-regex=^(production_status|geo) |
env |
S'applique lors du démarrage du daemon Docker. Une liste séparée par des virgules de variables d'environnement liées au logging que ce daemon accepte. Utilisé pour les options avancées de tag de log. | --log-opt env=os,customer |
env-regex |
Similaire et compatible avec env . Une expression régulière pour correspondre aux variables d'environnement liées au logging. Utilisé pour les options avancées de tag de log. |
--log-opt env-regex=^(os|customer) |
compress |
Bascule la compression pour les logs rotatés. Par défaut disabled . |
--log-opt compress=true |
Exemples
Cet exemple démarre un conteneur alpine
qui peut avoir un maximum de 3 fichiers de log
ne dépassant pas 10 mégaoctets chacun.
$ docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash