Docker est une plate-forme de conteneurisation d'applications populaire qui accélère la création, le déploiement et la gestion d'applications. Cependant, lors de l'exécution d'applications à l'aide de Docker, nous pouvons rencontrer des problèmes inattendus, ce qui nécessite de consulter le journal de démarrage de Docker pour comprendre la cause première du problème. Alors, comment afficher le journal de démarrage de Docker ?
Docker fournit une commande intégrée docker logs qui peut être utilisée pour afficher la sortie standard et la sortie d'erreur standard dans le conteneur. Pour utiliser cette commande, vous pouvez d'abord vérifier l'ID ou le nom du conteneur en cours d'exécution, qui peut être visualisé via la commande docker ps :
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8623f22d0b74 nginx "nginx -g 'daemon of…" 10 days ago Up 2 hours 80/tcp web
Dans la sortie ci-dessus, l'ID du conteneur est 8623f22d0b74 et le nom du conteneur est web. Vous pouvez utiliser la commande docker logs pour afficher la sortie du journal dans le conteneur :
$ docker logs 8623f22d0b74 172.17.0.1 - - [02/May/2020:19:41:04 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-" 172.17.0.1 - - [02/May/2020:19:41:06 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://localhost/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-"
Dans la sortie ci-dessus, nous pouvons voir le journal d'accès du serveur NGINX. Cette commande peut simplement nous aider à trouver le problème de démarrage du conteneur.
En plus d'utiliser la commande docker logs, nous pouvons également utiliser la commande docker events pour afficher les événements de démarrage de Docker. Cette commande peut observer tous les événements émis par Docker et générer les informations correspondantes. Par exemple, nous pouvons utiliser la commande suivante pour afficher tous les événements d'une exécution de Docker :
$ docker events ... 2020-05-02T19:44:07.842095081+00:00 container destroy 8623f22d0b746eee40b1568a78ffdf2f1555a9c5b557d8c5a5a5eaa32c7f1ede (image=nginx, name=web) 2020-05-02T19:44:08.273816081+00:00 network disconnect 6cbedee6e77d 03ac9adf39af42c8d651f0ed60073c92837e866aebb0c75bfcb3f3c9a701bcb7 (endpoint=03ac9adf39af42c8d651f0ed60073c92837e866aebb0c75bfcb3f3c9a701bcb7, name=bridge, type=bridge) 2020-05-02T19:44:09.260029423+00:00 network destroy 6cbedee6e77d (name=bridge)
Dans la sortie ci-dessus, nous pouvons voir les événements de destruction du conteneur, l'événement de déconnexion du réseau et l'événement de destruction du réseau. . Cette commande peut nous aider à comprendre d'autres événements du conteneur Docker.
Tous les journaux d'un conteneur Docker sont stockés dans le système de fichiers du conteneur. Par conséquent, nous pouvons les visualiser à l’aide d’outils de visualisation de fichiers classiques tels que cat, tail ou grep. Par exemple, si vous souhaitez afficher le journal système du conteneur, vous pouvez utiliser la commande suivante :
$ docker inspect --format='{{.LogPath}}' 8623f22d0b74 /var/lib/docker/containers/8623f22d0b74cea5f8d76432734ec06c19683d698583cc59dd8f4af4bb70ac10/8623f22d0b74cea5f8d76432734ec06c19683d698583cc59dd8f4af4bb70ac10-json.log
Cette commande affichera le chemin du fichier journal du conteneur. Nous pouvons continuer à utiliser la commande tail pour afficher les dernières lignes du fichier journal :
$ docker inspect --format='{{.LogPath}}' 8623f22d0b74 | xargs tail -f ...
Dans la sortie ci-dessus, nous pouvons voir la sortie du journal en temps réel du conteneur. Vous pouvez utiliser le raccourci Ctrl-C pour arrêter d'afficher les journaux.
Résumé
La gestion des journaux de Docker est un processus complexe, mais en utilisant les commandes intégrées fournies par Docker, nous pouvons facilement visualiser les problèmes survenant dans le conteneur. En utilisant la commande docker logs, la commande docker events ou en affichant le fichier journal du conteneur, nous pouvons nous tenir au courant de l'état d'exécution du conteneur Docker, offrant ainsi une prise en charge solide pour le déploiement et la gestion des applications Docker.
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!