
Table des matières
La surveillance des conteneurs Docker est essentielle pour maintenir la stabilité et le bon fonctionnement de vos applications. Les journaux Docker vous permettent de voir ce qui se passe dans vos conteneurs et vous permettent de suivre les performances, d’identifier les erreurs et de résoudre les problèmes plus rapidement. Dans ce guide, nous expliquerons comment obtenir les journaux Docker, les comprendre et utiliser ces informations pour résoudre efficacement les problèmes courants de conteneurs.
Que sont les journaux Docker
Les journaux Docker sont les enregistrements de tout ce qui se passe dans un conteneur Docker en cours d’exécution. Ils incluent à la fois une sortie standard (stdout) et des messages d’erreur (stderr) et vous permettent de découvrir les performances de votre conteneur et s’il y a des problèmes.
Par défaut, Docker enregistre ces journaux sous forme de fichiers JSON sur le système hôte dans le répertoire « /var/lib/docker/containers ». Chaque conteneur possède son propre fichier journal nommé « (container_id)-json.log ». Vous pouvez ouvrir ces fichiers directement ou utiliser le docker logs commande pour les afficher dans le terminal.
Ces journaux contiennent des messages d’application, des avertissements et des erreurs qui vous aident à déboguer les problèmes. Ils peuvent également inclure des informations système telles que des événements de démarrage ou des détails sur l’utilisation des ressources.
Pour gérer efficacement les journaux, Docker utilise des pilotes de journalisation. Un pilote de journalisation définit où et comment les journaux sont stockés ou envoyés. Le pilote par défaut, json-file, enregistre les journaux localement au format JSON, mais vous pouvez choisir d’autres pilotes pour envoyer les journaux à des systèmes externes afin de faciliter la gestion et l’analyse.
Comment obtenir/afficher les journaux Docker
Le docker logs La commande vous permet d’afficher les journaux d’un conteneur en cours d’exécution qui utilise le pilote de journalisation « json-file » ou journald. Vous pouvez l’exécuter comme suit :
docker logs (OPTIONS) CONTAINER_NAME_OR_IDRemplacer CONTAINER_NAME_OR_ID avec le nom ou l’ID réel du conteneur que vous souhaitez vérifier. Pour voir la liste des conteneurs en cours d’exécution, utilisez cette commande :
docker psCette commande affiche une liste des conteneurs actifs ainsi que leurs identifiants, noms, statut et autres informations utiles.
Dans l’exemple ci-dessus, Docker exécute deux conteneurs : openwebui et ollama. Pour afficher les journaux d’un conteneur spécifique, utilisez simplement son nom. Par exemple, pour vérifier les journaux du conteneur openwebui, exécutez cette commande.
docker logs openwebui
Vous pouvez également utiliser l’ID du conteneur au lieu de son nom pour afficher les journaux. Par exemple:
docker logs 1f351684ae30
Options et indicateurs courants des journaux Docker
Docker vous permet d’utiliser différentes options avec la commande docker logs pour contrôler la façon dont les journaux sont affichés. En voici quelques-uns utiles.
| Option | Description | Exemple de commande |
|---|---|---|
| -détails | Affiche des informations supplémentaires dans les journaux. | journaux Docker – détails nom_conteneur |
| –suivre, -f | Continue d’afficher les nouvelles entrées de journal en temps réel. | journaux docker -f nom_conteneur |
| -depuis | Affiche les journaux générés après une heure ou une durée spécifique (par exemple, 2024-07-08T13:42:13Z ou 10 min). | journaux Docker – depuis 10 mois nom_du_conteneur |
| –queue, -n | Affiche uniquement un nombre défini de lignes à partir de la fin des journaux. | journaux Docker – queue 50 nom_conteneur |
| –horodatages, -t | Ajoute des horodatages à chaque ligne de journal. | journaux docker -t nom_conteneur |
| -jusqu’à | Affiche les journaux générés avant une heure spécifique. | journaux Docker – jusqu’au 2024-07-08T14:00:00Z nom_du_conteneur |
Par exemple, pour voir les 50 dernières entrées de journal d’un conteneur spécifique, exécutez la commande docker logs commande avec le --tail option.
docker logs --tail 50 openwebui
De même, vous pouvez utiliser d’autres options, telles que --follow pour regarder les journaux en direct ou --since pour filtrer les journaux par heure en fonction de vos besoins.
Enregistrer les journaux Docker dans un fichier
Vous pouvez enregistrer les journaux Docker dans un fichier à l’aide de l’opérateur de redirection simple ou des options de commande intégrées. Par exemple, la commande suivante enregistre les journaux Docker dans un fichier nommé « container_logs.txt ».
docker logs container_name > container_logs.txt
Vous pourrez ensuite ouvrir ce fichier avec n’importe quel éditeur de texte (comme Notepad, VS Code ou nano) pour afficher les journaux enregistrés.

Afficher les journaux dans Docker Compose
Vous pouvez facilement afficher les journaux des conteneurs gérés par Docker Compose à l’aide de l’outil docker compose logs commande. Par exemple, pour afficher les journaux de tous les conteneurs de votre projet Compose, exécutez la commande suivante :
docker compose logsCependant, si vous ne souhaitez que les journaux d’un seul service, mentionnez son nom après la commande.
docker compose logs service_nameNote: Si vous utilisez une ancienne version de Docker, la commande peut être docker-compose logs (avec un trait d’union). Les deux fonctionnent de la même manière, selon votre version de Docker.
Conseils pour gérer les journaux Docker
Docker utilise des pilotes de journalisation pour capturer et stocker la sortie du conteneur. Par défaut, il utilise le pilote « json-file », qui enregistre les journaux au format JSON sur le système hôte. Vous pouvez passer à d’autres pilotes pour envoyer des journaux à des services externes ou utiliser un pilote personnalisé si vous avez besoin de plus de contrôle.
Docker prend en charge deux modes de livraison de journaux. Le mode de blocage envoie les journaux immédiatement mais peut légèrement affecter les performances. Le mode non bloquant stocke temporairement les journaux en mémoire avant de les envoyer. Cela réduit les délais mais peut perdre des journaux si la mémoire tampon se remplit.
Vous pouvez également gérer la journalisation dans votre application pour plus de flexibilité. Toutefois, étant donné que les données du conteneur sont temporaires, il est préférable de stocker les journaux dans un stockage persistant ou de les transmettre à un service de gestion des journaux externe.
L’utilisation de volumes Docker est un moyen fiable de protéger vos journaux. Les volumes stockent les données sur la machine hôte et restent disponibles même si un conteneur s’arrête ou redémarre. Ils sont plus adaptés au stockage à long terme que les supports liés.
Une autre bonne approche consiste à utiliser un conteneur de journalisation dédié. Il collecte et gère les journaux de plusieurs conteneurs et les transmet à un système centralisé. Cette configuration permet de garder vos principaux conteneurs d’applications légers et faciles à gérer.
Conclusion
Les journaux Docker sont essentiels pour surveiller les performances des conteneurs et résoudre rapidement les problèmes. Vous pouvez utiliser des commandes comme docker logs et suivez les meilleures pratiques, telles que le stockage persistant et les pilotes de journalisation appropriés, pour garantir une gestion fiable des journaux. Avec une configuration de journalisation organisée, vous pouvez maintenir la stabilité de vos conteneurs et le bon fonctionnement de vos applications. Pour une meilleure surveillance et analyse des journaux, envisagez d’utiliser des outils tels que ELK Stack, Fluentd, Prometheus et Grafana.










