CodeGym /Cours /Docker SELF /Journalisation des conteneurs

Journalisation des conteneurs

Docker SELF
Niveau 22 , Leçon 0
Disponible

6.1 Fonctions principales de la commande docker logs

La journalisation des conteneurs, c'est une partie importante de la gestion et du monitoring des applications Docker. Les logs permettent de suivre le comportement des conteneurs, diagnostiquer des problèmes et comprendre comment fonctionnent les applications à l'intérieur des conteneurs. Dans cette leçon, on va examiner en détail comment utiliser la commande docker logs pour journaliser les conteneurs.

Fonctions principales de la commande docker logs

La commande docker logs est utilisée pour extraire et visualiser les logs des conteneurs. Elle permet de :

  • Visualiser la sortie standard (stdout) et la sortie d'erreur standard (stderr) d'un conteneur.
  • Filtrer et suivre les logs en temps réel.
  • Rechercher et analyser les logs pour diagnostiquer des problèmes.

6.2 Utilisation de la commande docker logs

1. Afficher les logs d'un conteneur

Pour afficher les logs d'un conteneur, utilise la commande :

Terminal

docker logs <container_id_or_name>

Exemple :

Terminal

docker logs my_container 

Cette commande va afficher tous les logs du conteneur my_container.

2. Suivre les logs en temps réel

Pour suivre les logs en temps réel, utilise le flag -f (ou --follow) :

Terminal

docker logs -f <container_id_or_name>

Exemple :

Terminal

docker logs -f my_container

Cette commande va afficher les nouveaux logs au fur et à mesure qu'ils apparaissent.

3. Limiter le nombre de lignes affichées

Pour limiter le nombre de lignes affichées avec la commande docker logs, utilise le flag --tail :

Terminal

docker logs --tail <number_of_lines> <container_id_or_name>

Exemple :

Terminal

docker logs --tail 10 my_container

Cette commande va afficher les 10 dernières lignes des logs du conteneur my_container.

4. Affichage des logs à partir d'une heure spécifique

Pour afficher les logs à partir d'une heure spécifique, utilise le flag --since :

Terminal

docker logs --since <timestamp> <container_id_or_name>

Exemple :

Terminal

docker logs --since 2022-01-01T00:00:00 my_container

Cette commande va afficher les logs du conteneur my_container à partir du 1er janvier 2022.

5. Affichage des logs jusqu'à une heure spécifique

Pour afficher les logs jusqu'à une heure spécifique, utilise le flag --until :

Terminal

docker logs --until <timestamp> <container_id_or_name>

Exemple :

Terminal

docker logs --until 2022-01-02T00:00:00 my_container

Cette commande va afficher les logs du conteneur my_container jusqu'au 2 janvier 2022.

6.3 Exemples d'utilisation de docker logs

Exemple 1 : Diagnostic d'une erreur d'application

Si ton application dans un conteneur s'est terminée de manière inattendue avec une erreur, tu peux utiliser docker logs pour diagnostiquer la raison :

Terminal

docker logs my_app_container 

Regarder les logs peut t'aider à comprendre ce qui n'a pas marché et pourquoi l'application s'est terminée avec une erreur.

Exemple 2 : Suivi du fonctionnement d'un service

Pour suivre le fonctionnement d'un service web en temps réel, utilise l'option -f :

Terminal

docker logs -f web_service_container 

Cette commande te permet de voir tous les nouveaux logs qui arrivent sur le service web.

Exemple 3 : Analyse des logs pour une période donnée

Si tu as besoin d'analyser les logs pour une période spécifique, utilise les options --since et --until :

Terminal

docker logs --since "2023-07-01" --until "2023-07-02" my_app_container 

Cette commande affichera les logs du conteneur my_app_container pour le 1er juillet 2023.

6.4 Configuration des drivers de journalisation Docker

Docker supporte différents drivers de journalisation que tu peux configurer pour les conteneurs. Les principaux drivers de journalisation incluent :

  • json-file: Par défaut. Les logs sont sauvegardés dans des fichiers au format JSON.
  • syslog: Les logs sont envoyés au journal système (syslog).
  • journald: Les logs sont envoyés au système journald.
  • gelf: Les logs sont envoyés aux serveurs qui supportent le protocole GELF (Graylog Extended Log Format).
  • fluentd: Les logs sont envoyés au serveur Fluentd.

Installation du driver de journalisation

Pour installer un driver de journalisation, utilise le flag --log-driver lors du lancement d'un conteneur :

Terminal

docker run --log-driver <driver_name> <container_image>

Exemple :

Terminal

docker run --log-driver syslog my_app_image

Cet exemple lance un conteneur en utilisant le driver de journalisation syslog.

Configuration des paramètres de journalisation

Tu peux spécifier les paramètres de journalisation en utilisant le flag --log-opt :

Terminal

docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION