Wie man den docker desktop restart-Befehl verwendet, um Docker Desktop neu zu starten

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Docker Desktop neu starten, eine grundlegende Operation zur Verwaltung Ihrer Docker-Umgebung. Wir untersuchen den Zweck des Neustarts von Docker Desktop, der dem Neustart des Docker-Daemon-Dienstes in einer Linux-Umgebung entspricht, wie sie in dieser LabEx-VM bereitgestellt wird.

Sie werden den grundlegenden Neustart-Befehl ausführen, lernen wie Sie Docker Desktop im Detached-Modus neu starten und verstehen, wie Sie ein Timeout für den Neustart-Prozess setzen. Diese praktische Erfahrung vermittelt Ihnen das Wissen, um Ihre Docker-Umgebung effektiv zu verwalten und Probleme zu beheben, indem Sie den Daemon bei Bedarf neu starten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/start("Start Container") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/restart("Restart Container") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ps -.-> lab-555147{{"Wie man den docker desktop restart-Befehl verwendet, um Docker Desktop neu zu starten"}} docker/start -.-> lab-555147{{"Wie man den docker desktop restart-Befehl verwendet, um Docker Desktop neu zu starten"}} docker/stop -.-> lab-555147{{"Wie man den docker desktop restart-Befehl verwendet, um Docker Desktop neu zu starten"}} docker/restart -.-> lab-555147{{"Wie man den docker desktop restart-Befehl verwendet, um Docker Desktop neu zu starten"}} docker/info -.-> lab-555147{{"Wie man den docker desktop restart-Befehl verwendet, um Docker Desktop neu zu starten"}} docker/system -.-> lab-555147{{"Wie man den docker desktop restart-Befehl verwendet, um Docker Desktop neu zu starten"}} end

Den Zweck des Docker Desktop-Neustarts verstehen

In diesem Schritt werden wir den Zweck des Neustarts von Docker Desktop verstehen. Während die LabEx-Umgebung eine Linux-VM mit vorinstalliertem Docker bereitstellt, ist das Konzept des Neustarts des Docker-Daemons grundlegend für die Verwaltung von Docker-Umgebungen, einschließlich Docker Desktop auf anderen Betriebssystemen.

Der Docker-Daemon ist der Hintergrunddienst, der Docker-Objekte wie Images, Container, Netzwerke und Volumes verwaltet. Es kann verschiedene Gründe geben, warum Sie den Docker-Daemon neu starten müssen, zum Beispiel:

  • Anwenden von Konfigurationsänderungen: Einige Änderungen an der Docker-Daemon-Konfiguration erfordern einen Neustart, um wirksam zu werden.
  • Problembehandlung: Ein Neustart des Daemons kann verschiedene Probleme lösen, wie z.B. nicht startende Container, Netzwerkprobleme oder Leistungsprobleme.
  • Freigabe von Ressourcen: In einigen Fällen kann ein Neustart des Daemons Systemressourcen freigeben, die möglicherweise vom Docker-Prozess belegt werden.

In einer Linux-Umgebung wie der LabEx-VM interagieren Sie direkt mit dem Docker-Daemon über die docker-Befehlszeilenschnittstelle. Das Äquivalent zum Neustart von Docker Desktop auf anderen Betriebssystemen ist der Neustart des Docker-Daemon-Dienstes unter Linux.

Um den Status des Docker-Dienstes in der LabEx-VM zu überprüfen, können Sie den systemctl-Befehl verwenden:

systemctl status docker

Sie sollten eine Ausgabe sehen, die bestätigt, dass der Docker-Dienst aktiv und in Betrieb ist.

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: https://docs.docker.com
   Main PID: ... (dockerd)
      Tasks: ...
     Memory: ...
        CPU: ...
     CGroup: /system.slice/docker.service
             └─... /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Diese Ausgabe bestätigt, dass der Docker-Daemon als Systemdienst läuft. Obwohl wir den Dienst in diesem speziellen Schritt nicht neu starten werden, um die Umgebung nicht zu stören, ist das Verständnis seines Status der erste Schritt zur Verwaltung.

Den grundlegenden Docker Desktop-Neustart-Befehl ausführen

In diesem Schritt lernen wir, wie man den Docker-Daemon in einer Linux-Umgebung neu startet, was dem Neustart von Docker Desktop entspricht. Wie wir im vorherigen Schritt gelernt haben, ist der Docker-Daemon ein Systemdienst. Um einen Systemdienst unter Linux neu zu starten, verwenden wir den Befehl systemctl.

Der grundlegende Befehl zum Neustart des Docker-Dienstes lautet sudo systemctl restart docker. Der sudo-Befehl wird verwendet, da das Neustarten von Systemdiensten in der Regel Administratorrechte erfordert. Der Befehl systemctl restart stoppt den Dienst, falls er läuft, und startet ihn anschließend erneut.

Vor dem Neustart führen wir einen einfachen Docker-Befehl aus, um sicherzustellen, dass der Daemon reagiert. Wir können die aktuell laufenden Container mit docker ps auflisten. Da wir noch keine Container gestartet haben, sollte die Ausgabe leer sein oder nur die Spaltenüberschriften anzeigen.

docker ps

Nun starten wir den Docker-Dienst neu. Führen Sie folgenden Befehl aus:

sudo systemctl restart docker

Dieser Befehl stoppt und startet den Docker-Daemon neu. Sie werden keine umfangreiche Ausgabe sehen, es sei denn, es tritt ein Fehler auf.

Nach Abschluss des Neustarts überprüfen wir erneut den Status des Docker-Dienstes, um sicherzustellen, dass er läuft:

systemctl status docker

Sie sollten eine ähnliche Ausgabe wie im vorherigen Schritt sehen, die bestätigt, dass der Dienst aktiv und in Betrieb ist, allerdings zeigt die Zeile "Active" nun einen aktuellen Zeitstempel an, was auf den erfolgten Neustart hinweist.

Abschließend führen wir erneut docker ps aus, um zu bestätigen, dass der Docker-Daemon nach dem Neustart reagiert:

docker ps

Die Ausgabe sollte wieder die Container-Überschriften anzeigen und bestätigen, dass der Docker-Daemon betriebsbereit ist.

Das Neustarten des Docker-Daemons ist eine gängige Maßnahme zur Problembehebung und nach bestimmten Konfigurationsänderungen notwendig.

Docker Desktop im Detached-Modus neu starten

In diesem Schritt untersuchen wir das Konzept des Ausführens von Prozessen im "Detached-Modus" und dessen Zusammenhang mit der Verwaltung des Docker-Daemons. Während der Begriff "Detached-Modus" häufiger mit dem Ausführen von Docker-Containern im Hintergrund verbunden wird, ist das zugrundeliegende Prinzip des Ausführens eines Prozesses ohne gebundenes Terminal auch für Systemdienste wie den Docker-Daemon relevant.

Wenn Sie einen Befehl im Vordergrund ausführen, bleibt Ihr Terminal belegt, bis der Befehl abgeschlossen ist. Im Gegensatz dazu ermöglicht das Ausführen eines Prozesses im Hintergrund oder "detached" die weitere Nutzung des Terminals für andere Aufgaben. Systemdienste wie der Docker-Daemon sind standardmäßig so konzipiert, dass sie automatisch im Hintergrund starten, wenn das System hochfährt.

Im Kontext von systemctl führt der restart-Befehl standardmäßig dazu, dass Ihr Terminal nicht gebunden bleibt. Er initiiert den Stop- und Start-Prozess und gibt die Kontrolle an Ihr Terminal zurück, sobald der Befehl ausgeführt wurde - selbst wenn der Dienst noch nicht vollständig gestartet ist. Dies ähnelt dem Konzept des Detached-Modus für Container.

Zur Veranschaulichung starten wir den Docker-Dienst erneut mit demselben Befehl wie zuvor:

sudo systemctl restart docker

Beachten Sie, dass nach der Befehlsausführung die Terminal-Eingabeaufforderung sofort zurückkehrt. Der systemctl restart-Befehl wartet nicht darauf, dass der Docker-Daemon vollständig betriebsbereit ist, bevor er zurückkehrt. Der Daemon startet nun im Hintergrund neu.

Sie können überprüfen, ob der Dienst neu startet und schließlich im Hintergrund läuft, indem Sie seinen Status abfragen:

systemctl status docker

Sie werden sehen, wie sich der Status von "stopping" zu "starting" und schließlich zu "active (running)" ändert. Dies geschieht unabhängig von Ihrer Terminal-Sitzung, nachdem Sie den Neustart-Befehl initiiert haben.

Dieses Verhalten von systemctl restart ist analog zum Starten eines Docker-Containers mit dem -d oder --detach-Flag, bei dem der Container im Hintergrund startet und Ihr Terminal nicht blockiert.

Docker Desktop mit Timeout neu starten

In diesem Schritt lernen wir, wie man den Docker-Daemon mit einem Timeout neu startet. Während der Befehl systemctl restart selbst keinen integrierten Timeout-Parameter hat (wie etwa einige Docker-Befehle z.B. docker stop --time), ist das Timeout-Konzept wichtig für die Dienstverwaltung.

Im Kontext von systemctl haben die Stop- und Start-Operationen während eines Neustarts ihre eigenen internen Timeouts, die in der Service-Unit-Datei definiert sind. Wenn ein Dienst innerhalb dieser definierten Timeouts nicht stoppt oder startet, meldet systemd (der System- und Service-Manager) typischerweise einen Fehler.

Wenn beispielsweise der Docker-Daemon beschäftigt ist und zu lange zum Herunterfahren benötigt, wenn systemctl restart ausgeführt wird, könnte systemd den Prozess schließlich beenden und einen Fehler melden. Ebenso schlägt der Startvorgang fehl, wenn der Daemon nicht innerhalb des konfigurierten Timeouts startet.

Während wir nicht direkt einen Timeout für den gesamten Neustartprozess im systemctl restart-Befehl angeben können, können wir ein Szenario simulieren, in dem ein Timeout relevant sein könnte, indem wir das Verhalten des Dienststatus während eines Neustarts beobachten.

Lassen Sie uns einen weiteren Neustart des Docker-Dienstes initiieren:

sudo systemctl restart docker

Direkt nach der Befehlsausführung können Sie schnell den Status überprüfen. Sie könnten kurz den Dienst im Zustand "stopping" oder "activating" sehen, bevor er wieder zu "active (running)" wechselt.

systemctl status docker

Die Zeit, die der Dienst für diese Zustandsübergänge benötigt, wird von den internen Timeouts beeinflusst, die für die Docker-Service-Unit konfiguriert sind. Wenn der Dienst während des Stoppens oder Startens hängen bleibt, würde systemd diese Timeouts durchsetzen.

Falls beispielsweise der Stop-Vorgang ein Timeout erreicht, könnten Sie eine Fehlermeldung in der systemctl status docker-Ausgabe oder in den Systemlogs (journalctl -u docker) sehen.

Obwohl wir keine direkte Befehlszeilenoption haben, um ein Timeout für den gesamten systemctl restart-Vorgang festzulegen, ist es für die Fehlerbehebung bei Dienstverwaltungsproblemen entscheidend zu verstehen, dass die zugrundeliegenden Stop- und Start-Prozesse Timeouts unterliegen. Wenn ein Neustart konsequent fehlschlägt, ist die Untersuchung der Dienstlogs auf Timeout-Fehler ein guter Ausgangspunkt.

Zusammenfassung

In diesem Lab haben wir den Zweck des Neustarts von Docker Desktop kennengelernt, was dem Neustart des Docker-Daemon-Dienstes in einer Linux-Umgebung entspricht. Wir haben verstanden, dass ein Neustart notwendig ist, um Konfigurationsänderungen zu übernehmen, Probleme zu beheben und Ressourcen freizugeben. Außerdem haben wir gelernt, wie man den Status des Docker-Dienstes mit dem Befehl systemctl status docker in einer Linux-VM überprüft.

Anschließend haben wir den grundlegenden Befehl docker desktop restart ausgeführt, obwohl die Lab-Umgebung eine Linux-VM verwendet, in der wir direkt mit dem Docker-Daemon interagieren. Wir haben auch untersucht, wie man Docker Desktop im Detached-Modus und mit einem spezifizierten Timeout neu startet, wobei wir die praktischen Auswirkungen dieser Optionen für ein effektives Management der Docker-Umgebung verstanden haben.