GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

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 commande. Lorsque le démon n'est pas en cours d'exécution, vous verrez un message "impossible de se connecter au démon Docker" chaque fois que vous utilisez le docker CLI.

Vérifier 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 populaires, y compris Debian, Ubuntu, CentOS et Red Hat.

sudo systemctl status docker

Vérifiez ce qui est affiché sous "Actif". Si vous voyez active (running) en vert, le démon Docker est en cours d'exécution et vos conteneurs devraient être opérationnels.

Un état actif inactive indique que le service s'est arrêté. Essayez de l'afficher en exécutant sudo systemctl start docker . Le statut doit passer à 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 en raison d'une erreur. Vous devriez consulter les journaux de démarrage du service affichés plus tard dans le systemctl sortie de la commande, car celles-ci contiennent généralement des indices qui vous permettent de déterminer ce qui n'a pas fonctionné.

Lorsqu'aucune 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 actif. 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 le pidof commande. Ceci 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 processus. Cela peut être plus fiable que de rechercher docker.pid – si le démon plante, docker.pid pourrait être laissé pour compte après la fin du processus.

Gestion des fichiers de processus bloqués

Le démon refusera de redémarrer lorsqu'un fichier PID est présent. Cela pourrait vous coincer dans une boucle de redémarrage si le fichier est réellement orphelin d'une exécution précédente. Vous verrez ce message lors de l'exécution de dockerd :

failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid

Utilisez pidof dockerd pour s'assurer que Docker est bien arrêté. Continuez si la commande n'émet aucune sortie, confirmant qu'il n'y a pas de processus en cours d'exécution.

Exécutez 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écuterez dockerd ou service docker start .

Les problèmes de fichier PID sont généralement 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 croire au démon Docker de la nouvelle machine virtuelle qu'il est déjà en cours d'exécution.

Vérification des conteneurs individuels

Le statut des conteneurs individuels est accessible via le docker ps commande. Cela émet un tableau 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 est en cours d'exécution par ID ou 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 commande :

docker start my-container

Le conteneur se déplacera ensuite dans le docker ps normal production. 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 fichier, et des outils d'inspection de processus réguliers tels que top et pidof .

En ce qui concerne les 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 n'importe quel 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.


Docker
  1. Comment faire fonctionner les conteneurs Docker lorsque le démon s'arrête

  2. Comment exécuter MySQL dans un conteneur Docker

  3. Comment exécuter une commande sur un conteneur Docker en cours d'exécution

  4. Comment attribuer une adresse IP statique à un conteneur Docker

  5. Comment changer le fuseau horaire d'un conteneur Docker

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment créer une image Docker à partir d'un conteneur en cours d'exécution

Comment créer des volumes Docker sous Windows en toute simplicité

Comment configurer un conteneur Apache Docker

Comment exécuter des conteneurs Docker