Maison > Article > Opération et maintenance > Docker vérifie où se trouve le fichier journal
Docker est une plateforme de conteneurisation open source très populaire, qui fournit une solution plus efficace, fiable et sécurisée pour le déploiement et la gestion d'applications. Cependant, lors de l'utilisation de Docker pour le déploiement, l'exploitation et la maintenance, nous devons souvent interroger les fichiers journaux pendant le processus d'exécution du conteneur pour mieux comprendre l'état de fonctionnement du système, le dépannage, le débogage de l'exploitation et de la maintenance, etc. Alors, où sont stockés les fichiers journaux dans Docker ? Cet article vous donnera une introduction détaillée à la méthode Docker d'affichage des fichiers journaux et aux précautions associées.
1. L'emplacement de stockage par défaut des fichiers journaux de Docker
Dans Docker, chaque conteneur générera les fichiers journaux correspondants. Ces fichiers journaux sont stockés par défaut dans le système de fichiers du conteneur. Plus précisément, Docker redirige par défaut la sortie standard (stdout) et l'erreur standard (stderr) du conteneur vers les fichiers de sortie standard et d'erreur standard du conteneur. Ces fichiers journaux se trouvent généralement dans le répertoire suivant :
/var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log
où $CONTAINER_ID représente l'identifiant unique du conteneur.
Pour le stockage des logs Docker, il y a les points importants suivants :
2. Utilisez Docker CLI pour afficher les fichiers journaux du conteneur
Dans le processus d'utilisation de Docker pour la gestion des conteneurs, nous pouvons utiliser l'outil de ligne de commande Docker CLI pour afficher les fichiers journaux du conteneur. Ci-dessous, nous présenterons plusieurs commandes Docker CLI de base pour implémenter la fonction d'affichage des journaux de conteneur.
La fonction de cette commande est d'imprimer toutes les informations de journal du conteneur spécifié. Parmi elles, les options OPTIONS peuvent être :
-a, --all : afficher les informations de journal de tous les conteneurs
-t, --timestamps : afficher les horodatages
-f, --follow : par exemple, les journaux de sortie tailf , Autrement dit, actualisez continuellement le journal d'affichage
--tail= : affiche le nombre spécifié de lignes de journaux à partir de la fin du fichier journal, la valeur par défaut est tous les journaux ($ docker logs -tail all)
-- depuis= : affiche les journaux enregistrés après l'heure spécifiée, telle que "2019-01-01", ou horodatage
--until= : affiche les journaux enregistrés avant l'heure spécifiée
L'utilisation spécifique est la suivante :
$ docker logs CONTAINER_ID
Cette commande affichera le conteneur spécifié Toutes les informations du journal, où CONTAINER_ID est l'identifiant unique du conteneur. Si vous souhaitez afficher les N dernières lignes d'informations du journal du conteneur, vous pouvez utiliser la commande suivante :
$ docker logs --tail N CONTAINER_ID
Si nous devons surveiller la sortie du journal en temps réel d'un conteneur à à tout moment, nous pouvons ajouter l'option -f :
$ docker logs -f CONTAINER_ID
Cette commande est utilisée pour obtenir des informations détaillées sur le conteneur spécifié, y compris le chemin du fichier journal du conteneur , l'état d'exécution, l'adresse IP, le mappage des ports et d'autres informations connexes. Grâce à cette commande, nous pouvons obtenir le chemin de stockage par défaut du fichier journal du conteneur, comme indiqué ci-dessous :
$ docker inspect --format='{{.LogPath}}' CONTAINER_ID
En plus d'afficher le chemin du fichier journal du conteneur , cette commande Vous pouvez également afficher d'autres informations connexes. L'utilisation spécifique est la suivante :
$ docker inspect CONTAINER_ID
3. Utilisez des outils tiers pour afficher les journaux Docker
En plus de l'outil Docker CLI, vous pouvez également utilisez des outils tiers pour afficher les journaux Docker plus facilement. Nous présentons ici deux outils populaires d'affichage des journaux Docker :
Docker Compose est un outil d'orchestration de conteneurs officiellement fourni par Docker. Il fournit un fichier configurable docker-compose.yml pour définir les applications multi-conteneurs. mode de fonctionnement. L'utilisation de Docker Compose pour le déploiement facilite le démarrage de plusieurs conteneurs en même temps et la collecte et la gestion des journaux en même temps.
Lors du déploiement d'une application à l'aide de Docker Compose, vous pouvez afficher les journaux du conteneur via la commande docker-compose logs. L'utilisation spécifique est la suivante :
$ docker-compose logs [SERVICES...]
où SERVICES est le nom du service spécifié Par défaut, les journaux de tous les services seront affichés.
ELK fait référence à la combinaison de trois logiciels open source Elasticsearch + Logstash + Kibana, qui peuvent collaborer pour réaliser la collecte, l'analyse et la visualisation de journaux. Les données de journal dans Docker peuvent être collectées via Logstash, puis les données de journal peuvent être transférées vers Elasticsearch pour indexation et récupération, et enfin les données peuvent être affichées visuellement via l'interface Kibana.
L'utilisation d'ELK Stack pour la collecte et la visualisation des journaux Docker nécessite les étapes suivantes :
(1) Installez Docker
(2) Installez Docker Compose
(3) Téléchargez le fichier image ELK Stack : docker pull sebp/elk
(4) Utilisez le fichier docker-compose.yml pour démarrer le service ELK Stack :
version : '3.7'
services:
elasticsearch:
image: sebp/elk ports: - "9200:9200" volumes: - ./elasticsearch.yml:/etc/elasticsearch/elasticsearch.yml
kibana:
image: sebp/elk ports: - "5601:5601" links: - elasticsearch
logstash:
image: sebp/elk volumes: - ./logstash:/etc/logstash/conf.d links: - elasticsearch
(5) Dans le Fichier de configuration Logstash Spécifiez le chemin du journal Docker :
input {
file {
path => ["/var/lib/docker/containers/*/*.log"] type => "docker" codec => "json"
}
}
filter {
if [type] == "docker" {
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200" manage_template => false index => "docker-%{+YYYY.MM.dd}"
}
}
(6) Redémarrez le service Logstash, puis recherchez et affichez les fichiers journaux Docker via l'interface Kibana.
En résumé, cet article détaille la méthode d'affichage des fichiers journaux dans Docker, y compris les commandes Docker CLI, les outils tiers tels que Docker Compose et ELK Stack. Avec l'aide de ces outils, nous pouvons plus facilement surveiller et déboguer les informations de journal du conteneur Docker pour garantir le fonctionnement normal de l'application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!