Comment vérifier si le démon Docker ou un conteneur est en cours d’exécution –
Docker utilise une architecture basée sur un démon où la CLI se connecte à un processus de longue durée s’exécutant séparément sur votre machine ou sur un hôte distant. Les commandes CLI ne fonctionneront pas et vos conteneurs seront généralement déconnectés si le démon s’arrête.
Voici comment vérifier si le démon de Docker est opérationnel afin que vous puissiez diagnostiquer les problèmes avec les conteneurs et le docker
commander. Lorsque le démon ne s’exécute pas, vous verrez un message « Impossible de se connecter au démon Docker » à chaque fois que vous utilisez le docker
CLI.
Sommaire
Vérification avec Systemctl
Vous pouvez vérifier le statut de Docker avec systemctl
sur les distributions qui utilisent Systemd pour la gestion des services. Cela couvre la majorité des systèmes d’exploitation courants, notamment Debian, Ubuntu, CentOS et Red Hat.
sudo systemctl status docker
Vérifiez ce qui s’affiche sous « Actif ». Si tu vois active (running)
en vert, le démon Docker est en cours d’exécution et vos conteneurs devraient être opérationnels.
Un état actif de inactive
indique que le service s’est arrêté. Essayez de l’amener en courant sudo systemctl start docker
. Le statut devrait changer pour active (running)
après le démarrage du démon.
Si vous voyez un statut de failed
en rouge, le démon n’a pas pu démarrer à cause d’une erreur. Vous devez consulter les journaux de démarrage du service affichés plus tard dans le systemctl
la sortie de la commande car elles contiennent généralement des astuces qui vous permettent de déterminer ce qui s’est mal passé.
Lorsqu’aucune résolution évidente n’est disponible, démarrez manuellement le démon en mode débogage pour obtenir plus d’informations sur sa routine de démarrage.
sudo dockerd --debug
Redémarrer votre machine hôte ou redémarrer le service Docker avec systemctl restart docker
peut également aider à atténuer les problèmes transitoires.
Inspection des détails du processus
Une autre façon de rechercher un démon Docker en cours d’exécution consiste à inspecter son fichier d’ID de processus. Le démon écrit son ID de processus dans /var/run/docker.pid
à chaque démarrage. Lorsque ce fichier existe, Docker doit être en cours d’exécution et prêt pour les connexions CLI.
cat /var/run/docker.pid
Vous pouvez utiliser cette technique pour créer des scripts de programmation qui vérifient si le démon est vivant. La lecture du fichier vous donne l’ID que vous pouvez utiliser avec des outils comme top
pour obtenir plus d’informations sur le processus Docker :
cat /var/run/docker.pid # process id = 1000 top -p 1000
Vous pouvez également obtenir l’ID de processus avec lepidof
commander. Cela accepte un nom de processus et renvoie le premier ID correspondant :
pidof dockerd # process id = 1000 # view information with top top -p `pidof dockerd`
Il y a un démon Docker actif sur votre machine si top
correspond à un dockerd
traiter. Cela peut être plus fiable que de chercher docker.pid
– si le démon plante, docker.pid
pourraient être laissés pour compte une fois le processus terminé.
Gestion des fichiers de processus bloqués
Le démon refusera de redémarrer lorsqu’un fichier PID est présent. Cela pourrait vous bloquer dans une boucle de redémarrage si le fichier est en fait orphelin d’une exécution précédente. Vous verrez ce message lors de l’exécution dockerd
:
failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid
Utilisation pidof dockerd
pour s’assurer que Docker est réellement arrêté. Continuez si la commande n’émet aucune sortie, confirmant qu’il n’y a pas de processus en cours d’exécution.
Courir sudo rm /var/run/docker.pid
pour supprimer l’ancien fichier d’ID de processus. Le démon devrait maintenant démarrer avec succès la prochaine fois que vous exécutez dockerd
ou service docker start
.
Les problèmes de fichier PID sont fréquemment rencontrés lorsque vous créez un instantané d’une machine virtuelle, puis créez une nouvelle instance à partir de l’image. Le fichier de processus sera inclus dans l’instantané, ce qui fera penser au démon Docker de la nouvelle machine virtuelle qu’il est déjà en cours d’exécution.
Vérification des conteneurs individuels
L’état des conteneurs individuels est accessible via le docker ps
commander. Cela émet une table contenant les détails de tous les conteneurs en cours d’exécution.
docker ps
Combinez le docker ps
commande avec grep
pour vérifier facilement si un conteneur spécifique s’exécute par ID ou par nom :
docker ps | grep my-container-name
Maintenant, la sortie sera filtrée pour afficher le conteneur que vous avez sélectionné. Il n’y aura aucun enregistrement si le conteneur n’est pas en cours d’exécution.
Les conteneurs arrêtés sont affichés à l’aide de docker ps -a
. Un conteneur arrêté peut être démarré avec le docker start
commander:
docker start my-container
Le conteneur se déplacera ensuite dans le docker ps
sortir. Vous pouvez l’arrêter à nouveau avec docker stop my-container
.
Conclusion
Vous avez plusieurs options à considérer lorsque vous voulez savoir si Docker est en cours d’exécution. Il y a le gestionnaire de service de votre système d’exploitation, le docker.pid
et des outils d’inspection régulière des processus tels que top
et pidof
.
Lorsqu’il s’agit de conteneurs individuels, docker ps
fournit la liste de tout ce qui est actuellement en cours d’exécution sur votre hôte. Des informations plus complètes sur l’état de tout conteneur peuvent être glanées avec docker inspect container-name
qui fournit des détails sur la configuration du réseau, les volumes et les étiquettes au format JSON.