GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

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

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.


Docker
  1. So halten Sie Docker-Container am Laufen, wenn der Daemon stoppt

  2. So führen Sie einen Befehl in einem laufenden Docker-Container aus

  3. So weisen Sie einem Docker-Container eine statische IP zu

  4. So installieren Sie Vim in einem Docker-Container

  5. So listen Sie Docker-Container auf

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So erstellen Sie ein Docker-Image aus einem laufenden Container

So erstellen Sie Docker-Volumes unter Windows auf einfache Weise

So richten Sie einen Apache Docker-Container ein

So führen Sie Docker-Container aus