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 :
-
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.
-
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 volumeAprès cela, les logs sont accessibles sur la machine hôte à l’emplacement spécifié.
-
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é.