So überprüfen Sie, ob der Docker-Daemon oder ein Container ausgeführt wird

0
304

Docker verwendet eine daemonbasierte Architektur, bei der die CLI eine Verbindung zu einer Live-Prozess, der separat auf Ihrem Computer oder einem Remote-Host ausgeführt wird. CLI-Befehle funktionieren nicht und Ihre Container gehen normalerweise offline, wenn der Daemon stoppt.

So überprüfen Sie, ob der Docker-Daemon aktiv ist, damit Sie Probleme mit . diagnostizieren können container und den docker-Befehl. Wenn der Daemon nicht ausgeführt wird, sehen Sie die Meldung “Keine Verbindung zum Docker-Daemon möglich” Nachricht jedes Mal, wenn Sie die Docker-CLI verwenden.

Überprüfen mit Systemctl

Sie können den Status von Docker mit systemctl auf Distributionen überprüfen, die Systemd für die Dienstverwaltung verwenden. Dies deckt die meisten gängigen Betriebssysteme ab, einschließlich Debian, Ubuntu, CentOS und Red Hat.

sudo systemctl status docker

Überprüfen Sie, was unter “Aktiv” Wenn aktiv (läuft) in Grün angezeigt wird, wird der Docker-Daemon ausgeführt und Ihre Container sollten aktiv sein.

Ein aktiver Status von inaktiv zeigt an, dass der Dienst gestoppt wurde. Versuchen Sie, es aufzurufen, indem Sie sudo systemctl start docker ausführen. Der Status sollte sich nach dem Start des Daemons in aktiv (wird) ändern.

Werbung

Wenn der Status fehlgeschlagen in Rot angezeigt wird, konnte der Daemon aufgrund eines Fehlers nicht gestartet werden. Sie sollten die Startprotokolle des Dienstes überprüfen, die später in der Ausgabe des systemctl-Befehls angezeigt werden, da diese normalerweise Hinweise enthalten, mit denen Sie herausfinden können, was schief gelaufen ist.

Wenn keine offensichtliche Lösung verfügbar ist, starten Sie den Daemon manuell im Debugging-Modus, um weitere Informationen zu seiner Startroutine zu erhalten.

sudo dockerd –debug

Neustart Ihres Hostcomputers oder Neustart des Docker-Dienstes mit systemctl Docker neu starten kann auch helfen, vorübergehende Probleme zu lindern.

Inspecting Process Details

Eine andere Möglichkeit, nach einem laufenden Docker-Daemon zu suchen, besteht darin, seine Prozess-ID-Datei zu überprüfen. Der Daemon schreibt seine Prozess-ID bei jedem Start in /var/run/docker.pid. Wenn diese Datei vorhanden ist, sollte Docker ausgeführt werden und für CLI-Verbindungen bereit sein.

cat /var/run/docker.pid

Mit dieser Technik können Sie programmatische Skripts erstellen, die überprüfen, ob der Daemon am Leben ist . Wenn Sie die Datei lesen, erhalten Sie die ID, die Sie mit Tools wie top verwenden können, um weitere Informationen über den Docker-Prozess zu erhalten:

cat /var/run/docker.pid # process id = 1000 top -p 1000

< img src="http://www.cloudsavvyit.com/pagespeed_static/1.JiBnMqyl6S.gif" />

Sie können die Prozess-ID auch mit dem pidof-Befehl abrufen. Dies akzeptiert einen Prozessnamen und gibt die erste übereinstimmende ID zurück:

pidof dockerd # process id = 1000 # View information with top top -p `pidof dockerd` Werbung

Es gibt einen aktiven Docker daemon auf Ihrem Computer, wenn top einem Dockerd-Prozess entspricht. Dies kann zuverlässiger sein, als nach docker.pid zu suchen – Wenn der Daemon abstürzt, könnte docker.pid zurückbleiben, nachdem der Prozess beendet ist.

Handling von festgefahrenen Prozessdateien

Der Daemon verweigert den Neustart, wenn eine PID-Datei vorhanden ist. Dies kann dazu führen, dass Sie in einer Neustartschleife stecken bleiben, wenn die Datei tatsächlich aus einer früheren Ausführung verwaist ist. Diese Meldung wird beim Ausführen von dockerd angezeigt:

konnte den Daemon nicht starten: pid-Datei gefunden, stellen Sie sicher, dass Docker nicht ausgeführt wird oder löschen Sie /var/run/docker.pid

Verwenden Sie pidof dockerd, um sicherzustellen, dass Docker& #8217;s tatsächlich gestoppt. Fahren Sie fort, wenn der Befehl keine Ausgabe ausgibt, und bestätigen Sie, dass kein Prozess läuft.

Führen Sie sudo rm /var/run/docker.pid aus, um die alte Prozess-ID-Datei zu löschen. Der Daemon sollte jetzt beim nächsten Ausführen von docker oder service docker start erfolgreich starten.

PID-Dateiprobleme treten häufig auf, wenn Sie einen Snapshot einer virtuellen Maschine erstellen und dann eine neue Instanz aus dem Image erstellen. Die Prozessdatei wird in den Snapshot aufgenommen, wodurch der Docker-Daemon in der neuen VM denkt, dass sie bereits ausgeführt wird.

Überprüfen einzelner Container

Der Zugriff auf den Status einzelner Container erfolgt über den Befehl docker ps. Dadurch wird eine Tabelle mit den Details aller derzeit ausgeführten Container ausgegeben.

docker ps

Werbung

Kombiniere den docker ps-Befehl mit grep, um einfach zu überprüfen, ob ein bestimmter Container nach ID oder Name ausgeführt wird:

docker ps | grep my-container-name

Jetzt wird die Ausgabe gefiltert, um den von Ihnen ausgewählten Container anzuzeigen. Es gibt keine Datensätze, wenn der Container nicht ausgeführt wird.

Gestoppte Container werden mit docker ps -a angezeigt. Ein gestoppter Container kann mit dem docker start-Befehl gestartet werden:

docker start my-container

Der Container wird dann in die reguläre docker ps-Ausgabe verschoben. Sie können es mit docker stop my-container wieder stoppen.

Schlussfolgerung

Sie müssen mehrere Optionen in Betracht ziehen, wenn Sie wissen möchten, ob Docker Laufen. Es gibt den Service-Manager Ihres Betriebssystems, die Datei docker.pid und regelmäßige Tools zur Prozessinspektion wie top und pidof.

Wenn es um einzelne Container geht, bietet docker ps die Liste aller Elemente, die derzeit auf Ihrem Host ausgeführt werden. Umfassendere Informationen zum Status jedes Containers können mit docker inspect container-name abgerufen werden, der Details zur Netzwerkkonfiguration, Volumes und Labels im JSON-Format bereitstellt.