Docker verwendet eine Daemon-basierte Architektur, bei der die CLI eine Verbindung zu einem langlebigen Prozess herstellt, 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 Daemon von Docker aktiv ist, damit Sie Probleme mit Containern und docker diagnostizieren können Befehl. Wenn der Daemon nicht läuft, sehen Sie jedes Mal, wenn Sie docker verwenden, die Meldung „Kann keine Verbindung zum Docker-Daemon herstellen“. CLI.
Prüfung mit Systemctl
Sie können den Status von Docker mit systemctl überprüfen auf Distributionen, 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
Prüfen Sie, was unter „Aktiv“ angezeigt wird. Wenn Sie active (running) sehen in Grün läuft der Docker-Daemon und Ihre Container sollten aktiv sein.

Ein aktiver Zustand von inactive zeigt an, dass der Dienst beendet wurde. Versuchen Sie, es aufzurufen, indem Sie sudo systemctl start docker ausführen . Der Status sollte sich zu active (running) ändern nachdem der Daemon startet.
Wenn der Status failed angezeigt wird in rot, der Daemon konnte aufgrund eines Fehlers nicht gestartet werden. Sie sollten die Startprotokolle des Dienstes überprüfen, die später in systemctl angezeigt werden Befehlsausgabe, 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 restart docker kann auch dazu beitragen, vorübergehende Probleme zu lindern.
Inspizieren von Prozessdetails
Eine andere Möglichkeit, nach einem laufenden Docker-Daemon zu suchen, besteht darin, seine Prozess-ID-Datei zu untersuchen. Der Daemon schreibt seine Prozess-ID in /var/run/docker.pid jedes Mal, wenn es startet. Wenn diese Datei vorhanden ist, sollte Docker ausgeführt werden und für CLI-Verbindungen bereit sein.
cat /var/run/docker.pid
Sie können diese Technik verwenden, um programmatische Skripte zu erstellen, die prüfen, ob der Daemon aktiv 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

Sie können die Prozess-ID auch mit pidof erhalten Befehl. 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`anzeigen
Es gibt einen aktiven Docker-Daemon auf Ihrem Computer, wenn top entspricht einem dockerd Prozess. Dies kann zuverlässiger sein, als nach docker.pid zu suchen – wenn der Daemon abstürzt, docker.pid zurückgelassen werden könnte, nachdem der Prozess abgeschlossen ist.
Handhabung von hängengebliebenen Prozessdateien
Der Daemon verweigert den Neustart, wenn eine PID-Datei vorhanden ist. Dies könnte dazu führen, dass Sie in einer Neustartschleife stecken bleiben, wenn die Datei tatsächlich von einem vorherigen Lauf verwaist ist. Sie sehen diese Meldung, wenn Sie dockerd ausführen :
failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid
Verwenden Sie pidof dockerd um sicherzustellen, dass Docker tatsächlich gestoppt wird. Fahren Sie fort, wenn der Befehl keine Ausgabe ausgibt und bestätigen Sie, dass kein Prozess ausgeführt wird.
Führen Sie sudo rm /var/run/docker.pid aus um die alte Prozess-ID-Datei zu löschen. Der Daemon sollte nun erfolgreich starten, wenn Sie dockerd das nächste Mal ausführen oder service docker start .
Probleme mit PID-Dateien 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 er bereits läuft.
Einzelne Container prüfen
Auf den Status einzelner Container wird über den docker ps zugegriffen Befehl. Dies gibt eine Tabelle aus, die die Details aller derzeit laufenden Container enthält.
docker ps

Kombiniere das docker ps Befehl mit grep um einfach anhand der ID oder des Namens zu überprüfen, ob ein bestimmter Container ausgeführt wird:
docker ps | grep my-container-name
Jetzt wird die Ausgabe gefiltert, um den ausgewählten Container anzuzeigen. Es gibt keine Aufzeichnungen, wenn der Container nicht ausgeführt wird.

Angehaltene Container werden mit docker ps -a angezeigt . Ein angehaltener Container kann mit dem docker start gestartet werden Befehl:
docker start my-container
Der Container wird dann in den regulären docker ps verschoben Ausgang. Sie können es mit docker stop my-container wieder stoppen .
Schlussfolgerung
Sie haben mehrere Optionen zu berücksichtigen, wenn Sie wissen möchten, ob Docker ausgeführt wird. Da ist der Dienstmanager Ihres Betriebssystems, die docker.pid Datei und regelmäßige Prozessinspektionstools wie top und pidof .
Wenn es um einzelne Container geht, docker ps stellt die Liste von allem bereit, was derzeit auf Ihrem Host läuft. Umfassendere Informationen zum Status eines beliebigen Containers können mit docker inspect container-name abgerufen werden die Details zu Netzwerkkonfiguration, Volumes und Bezeichnungen im JSON-Format bereitstellt.