Lorsque vous exécutez des applications avec Docker, l'une des choses importantes à savoir est comment consulter les logs du conteneur. Ces logs sont très utiles pour vérifier si l'application fonctionne normalement, s'il y a des erreurs, ou si le service à l'intérieur du conteneur est bien actif.
Dans cet exemple, nous n'utiliserons pas de nom de conteneur spécifique. Utilisez donc un format générique tel que :
nom-du-conteneur
Ou si vous préférez quelque chose de plus simple, considérez que le nom de votre conteneur est :
nom-du-projet
Il suffira ensuite de remplacer nom-du-projet par le nom de votre propre conteneur Docker.
Pour vérifier le nom des conteneurs en cours d'exécution, utilisez :
docker ps
Regardez la colonne NAMES. C'est le nom du conteneur que vous pouvez utiliser pour les commandes Docker logs.
1. Voir les logs d'un conteneur
Pour voir les logs d'un conteneur, utilisez la commande :
docker logs nom-du-projet
Remplacez nom-du-projet par le nom de votre conteneur.
Exemple de format générique :
docker logs nom-du-conteneur
Cette commande affiche les logs déjà enregistrés de ce conteneur. Généralement, ces logs contiennent des informations comme le démarrage de l'application, les erreurs, les avertissements, ou des messages indiquant que le serveur est actif.
2. Voir les logs en direct
Si vous souhaitez voir les logs en temps réel, utilisez l'option -f.
docker logs -f nom-du-projet
L'option -f signifie follow. Ainsi, le terminal continuera à afficher les nouveaux logs tant que le conteneur est en cours d'exécution.
C'est très utile lors du débogage. Par exemple, après un redémarrage du conteneur, une mise à jour de l'application, ou pour voir s'il y a de nouvelles erreurs lorsque le site est consulté.
Pour quitter le mode log en direct, appuyez sur :
CTRL + C
Cela arrête simplement l'affichage des logs dans le terminal, pas le conteneur lui-même.
3. Voir uniquement les dernières lignes des logs
Parfois, les logs d'un conteneur sont très longs, surtout si l'application tourne depuis longtemps. Si vous voulez seulement voir les dernières lignes, utilisez --tail.
docker logs --tail=100 nom-du-projet
La commande ci-dessus affiche les 100 dernières lignes des logs du conteneur.
Pour voir les 50 dernières lignes :
docker logs --tail=50 nom-du-projet
Si vous voulez voir les dernières lignes tout en continuant à suivre les nouveaux logs, vous pouvez combiner --tail et -f.
docker logs --tail=100 -f nom-du-projet
Avec cette commande, Docker affiche les 100 dernières lignes, puis continue à afficher les nouveaux logs en direct.
4. Voir les logs en fonction du temps
Docker peut également afficher les logs en fonction d'une période spécifique. Par exemple, pour voir les logs des 10 dernières minutes :
docker logs --since=10m nom-du-projet
Ou depuis la dernière heure :
docker logs --since=1h nom-du-projet
Pour voir les logs jusqu'à un certain moment, utilisez :
docker logs --until=10m nom-du-projet
Cette fonctionnalité est utile si vous voulez vous concentrer sur les erreurs récentes sans avoir à lire l'intégralité des logs.
5. Entrer dans le conteneur
En plus de consulter les logs depuis l'extérieur, il peut être nécessaire d'entrer dans le conteneur pour vérifier des fichiers, des dossiers, ou exécuter des commandes spécifiques.
Utilisez la commande :
docker exec -it nom-du-projet sh
Les conteneurs basés sur des distributions Linux légères utilisent généralement sh.
Si votre image Docker supporte bash, vous pouvez aussi utiliser :
docker exec -it nom-du-projet bash
Une fois à l'intérieur du conteneur, vous pouvez vérifier le dossier actuel avec :
pwd
Puis lister les fichiers et dossiers :
ls
Pour plus de détails :
ls -la
6. Vérifier l'application depuis l'intérieur du conteneur
Une fois à l'intérieur du conteneur, vous pouvez vérifier si l'application fonctionne en essayant d'accéder à localhost sur le port utilisé par l'application.
Format générique :
wget -qO- http://localhost:PORT
Remplacez PORT par le port interne de l'application à l'intérieur du conteneur.
Exemple :
wget -qO- http://localhost:8080
Ou si curl est disponible dans le conteneur :
curl http://localhost:PORT
Exemple :
curl http://localhost:8080
Si l'application fonctionne normalement, vous devriez obtenir une réponse comme du HTML, du JSON, ou un texte spécifique de l'application.
7. Vérifier l'application depuis le VPS ou l'hôte
En plus de l'intérieur du conteneur, vous pouvez également vérifier l'application directement depuis le VPS ou le serveur hôte.
Format générique :
curl http://localhost:PORT
Remplacez PORT par le port ouvert sur le VPS ou le mappage de port Docker.
Exemple :
curl http://localhost:8080
Si vous utilisez Docker, assurez-vous que le port du conteneur est mappé au port de l'hôte. Vous pouvez vérifier avec :
docker ps
Vous verrez la colonne PORTS, par exemple :
0.0.0.0:8080->8080/tcp
Cela signifie que le port 8080 du VPS est redirigé vers le port 8080 du conteneur.
8. Vérifier le nom du conteneur
Si vous n'êtes pas sûr du nom du conteneur, exécutez :
docker ps
Cette commande affiche la liste des conteneurs en cours d'exécution.
Pour voir tous les conteneurs, y compris ceux qui sont arrêtés :
docker ps -a
Vous pouvez alors voir la colonne NAMES et utiliser ce nom pour la commande docker logs.
Exemple :
docker logs nom-du-conteneur
9. Exemple de processus de débogage simple
En général, lorsqu'un conteneur Docker rencontre un problème, vous pouvez commencer par vérifier l'état du conteneur.
D'abord, vérifiez si le conteneur est en cours d'exécution :
docker ps
Ensuite, consultez les dernières lignes des logs :
docker logs --tail=100 nom-du-projet
Si vous voulez surveiller en temps réel :
docker logs -f nom-du-projet
Si nécessaire, entrez dans le conteneur :
docker exec -it nom-du-projet sh
Ensuite, vérifiez le dossier de l'application :
pwd
ls -la
Puis testez si l'application répond sur le port interne :
wget -qO- http://localhost:PORT
Ou :
curl http://localhost:PORT
Conclusion
Pour consulter les logs d'un conteneur Docker, la commande la plus basique est :
docker logs nom-du-projet
Pour voir les logs en direct :
docker logs -f nom-du-projet
Pour voir uniquement la fin des logs :
docker logs --tail=100 nom-du-projet
Et si vous devez entrer dans le conteneur :
docker exec -it nom-du-projet sh
Avec ces quelques commandes simples, vous pouvez déjà vérifier l'état de votre application dans Docker, rechercher des erreurs, voir les processus en cours, et vous assurer que le service à l'intérieur du conteneur fonctionne correctement.
Écrit par
Wilan
Contributeur permanent de Bali Island Tekno qui partage activement des connaissances sur la technologie, la programmation et le monde du génie logiciel.