Sobes.tech
Junior

Comment peut-on consulter les journaux dans un conteneur en cours d'exécution?

sobes.tech IA

Réponse de l'IA

# Voir tous les logs du conteneur
docker logs <container_id_or_name>

# Voir les 100 dernières lignes de logs
docker logs --tail 100 <container_id_or_name>

# Voir les logs depuis le début du conteneur
docker logs --follow <container_id_or_name>

# Voir les logs depuis une heure précise
# Format de l’heure : RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>

# Voir les logs sur une période spécifique
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>

# Enregistrer les logs dans un fichier
docker logs <container_id_or_name> > container_logs.txt

La journalisation dans les conteneurs repose sur la redirection des flux standard de sortie (stdout) et d’erreur (stderr) de l’application à l’intérieur du conteneur. Docker collecte ces flux et les met à disposition via la commande docker logs.

Approches alternatives :

  1. Utilisation de pilotes de journalisation Docker : Configuration du démon Docker pour envoyer les logs vers des systèmes de journalisation centralisés (par exemple, ELK Stack, Splunk, CloudWatch Logs) à l’aide de divers pilotes de journalisation. C’est la méthode privilégiée pour les environnements de production.

  2. Mappage de volumes : Montage d’un volume depuis le système hôte dans le conteneur, où l’application écrit ses logs.

    # exemple de docker-compose.yml
    services:
      my_app:
        image: my_app_image
        volumes:
          - /var/log/myapp:/app/logs # Mappage de volume
    

    Après cela, les logs sont accessibles sur la machine hôte à l’emplacement spécifié.

  3. Installation d’agents de journalisation : Déploiement d’un agent de journalisation (par exemple, Filebeat, Fluentd) dans le conteneur ou en tant que sidecar, qui collecte les logs et les envoie à un système centralisé.