La surveillance efficace des conteneurs Docker est essentielle pour garantir la stabilité et le bon fonctionnement de vos applications. Les journaux Docker jouent un rôle crucial en fournissant des informations sur le fonctionnement interne de vos conteneurs, vous aidant ainsi à suivre les performances, à identifier les erreurs et à résoudre les problèmes plus efficacement. Ce guide complet vous accompagnera pas à pas dans la récupération et l’interprétation des journaux Docker, vous fournissant les connaissances nécessaires pour résoudre les problèmes courants liés aux conteneurs.
Comprendre les journaux Docker
Les journaux Docker contiennent un enregistrement détaillé de toutes les activités se déroulant au sein d’un conteneur Docker en cours d’exécution. Ils incluent la sortie standard (stdout) et les messages d’erreur standard (stderr), vous permettant ainsi de surveiller les performances de votre conteneur et de diagnostiquer les problèmes potentiels.
Par défaut, les journaux Docker sont stockés au format JSON dans le répertoire « /var/lib/docker/containers » du système hôte. Chaque conteneur génère son propre fichier journal au format « [container_id]-json.log ».Vous pouvez accéder directement à ces journaux ou utiliser la docker logscommande correspondante dans votre terminal pour les consulter facilement.
Ces journaux contiennent des messages d’application essentiels, des avertissements et des détails d’erreurs qui facilitent le dépannage. Ils peuvent également fournir des informations système telles que les événements de démarrage et les indicateurs d’utilisation des ressources.
Pour une meilleure gestion des journaux, Docker utilise des pilotes de journalisation. Un pilote de journalisation détermine comment et où les journaux sont stockés ou transmis. Le pilote par défaut, json-file, capture les journaux sur la machine locale au format JSON, mais vous pouvez sélectionner d’autres pilotes pour transférer les journaux vers des systèmes externes afin d’améliorer leur gestion et leur analyse.
Accéder aux journaux Docker
Pour consulter les journaux d’un conteneur en cours d’exécution utilisant le pilote de journalisation « json-file » ou journald, vous pouvez exécuter la commande suivante :
docker logs [OPTIONS] CONTAINER_NAME_OR_ID
Remplacez CONTAINER_NAME_OR_IDpar le nom ou l’identifiant de votre conteneur cible. Pour obtenir la liste de tous les conteneurs en cours d’exécution, utilisez la commande :
docker ps
Cette commande affiche les conteneurs actifs ainsi que leurs identifiants, noms, statuts et autres informations pertinentes.

Par exemple, si Docker exécute deux conteneurs, nommés openwebui et ollama, pour accéder aux journaux du conteneur openwebui, vous exécuteriez la commande suivante :
docker logs openwebui

Vous pouvez également utiliser l’ID du conteneur à la place de son nom pour consulter les journaux, comme indiqué ci-dessous :
docker logs 1f351684ae30

Options et indicateurs des journaux Docker
Cette docker logscommande prend en charge diverses options pour personnaliser l’affichage des journaux. Voici quelques paramètres utiles :
| Option | Description | Exemple de commande |
|---|---|---|
| -détails | Affiche des détails supplémentaires dans les journaux. | docker logs –details container_name |
| –suivre, -f | Affiche en continu les nouvelles entrées du journal en temps réel. | docker logs -f container_name |
| -depuis | Affiche les journaux générés après une heure ou une durée définie (par exemple, 2024-07-08T13:42:13Z ou 10 min). | docker logs –since 10m container_name |
| –queue, -n | Affiche un nombre spécifié de lignes à partir de la fin des journaux. | docker logs –tail 50 container_name |
| –horodatages, -t | Ajoute un horodatage à chaque entrée du journal. | docker logs -t container_name |
| -jusqu’à | Affiche les journaux générés avant une heure spécifiée. | docker logs –until 2024-07-08T14:00:00Z container_name |
Par exemple, pour afficher les 50 dernières entrées de journal d’un conteneur spécifique, vous exécuteriez :
docker logs --tail 50 openwebui

De même, vous pouvez utiliser d’autres options, comme --followla mise à jour en direct des journaux ou --sincele filtrage temporel des entrées de journal.
Enregistrement des journaux Docker dans un fichier
Pour enregistrer les journaux Docker dans un fichier texte, utilisez l’opérateur de redirection ou les options de commande disponibles. Par exemple, la commande ci-dessous enregistrera les journaux d’un conteneur spécifié dans « container_logs.txt » :
docker logs container_name > container_logs.txt

Vous pourrez ultérieurement accéder à ce fichier avec n’importe quel éditeur de texte (par exemple, Notepad, Visual Studio Code ou nano) pour consulter les journaux enregistrés.

Affichage des journaux dans Docker Compose
Pour accéder aux journaux des conteneurs gérés par Docker Compose, utilisez la docker compose logscommande suivante. Pour afficher les journaux de tous les conteneurs de votre projet Compose, exécutez :
docker compose logs
Si vous souhaitez consulter les journaux d’un service spécifique, ajoutez le nom du service à la commande :
docker compose logs service_name
Conseils pour la gestion des journaux Docker
Docker utilise des pilotes de journalisation pour capturer et stocker les données des conteneurs. Le pilote par défaut, json-file, enregistre les journaux au format JSON sur l’hôte. Vous pouvez opter pour d’autres pilotes afin d’envoyer les journaux à des services externes, ce qui vous offre un contrôle accru sur la gestion des journaux.
Docker propose deux modes de transmission des journaux. Le mode bloquant transmet immédiatement les journaux, mais peut légèrement impacter les performances.À l’inverse, le mode non bloquant conserve temporairement les journaux en mémoire avant de les transmettre, ce qui permet de minimiser les délais, mais présente un risque de perte de journaux en cas de saturation de la mémoire.
Pour plus de flexibilité, envisagez de gérer la journalisation au sein de votre application. Cependant, étant donné la nature éphémère des données de conteneur, il est conseillé de stocker les journaux de manière persistante ou de les transmettre à un service de gestion des journaux externe.
L’utilisation de volumes Docker est une méthode fiable pour protéger vos journaux. Les volumes enregistrent les données directement sur l’hôte et garantissent leur disponibilité même lors des arrêts ou redémarrages de conteneurs, ce qui les rend préférables aux montages de volumes pour l’archivage à long terme.
Une autre stratégie efficace consiste à utiliser un conteneur de journalisation dédié. Ce conteneur spécialisé collecte et gère les journaux de différents conteneurs, en les acheminant vers un système centralisé, ce qui permet de conserver des conteneurs d’application principaux légers et faciles à gérer.
Conclusion
En conclusion, les journaux Docker sont essentiels pour surveiller les performances des conteneurs et faciliter la résolution rapide des problèmes. En utilisant des commandes comme `docker docker logslogs` et en respectant les bonnes pratiques (notamment le stockage persistant et des pilotes de journalisation efficaces), vous pouvez garantir une gestion fiable des journaux. Un système de journalisation bien organisé contribue à la stabilité de vos conteneurs et au bon fonctionnement de vos applications. Pour une surveillance et une analyse plus poussées des journaux, envisagez d’intégrer des outils tels que la suite ELK, Fluentd, Prometheus et Grafana.
Laisser un commentaire