So starten Sie Docker neu

In diesem Artikel erfahren Sie, wie Sie den Docker-Daemon und Docker-Container über die Befehlszeile (CLI) neu starten können.
Für diese Anleitung verwenden wir einen BlueVPS NVMe-bKVM-Server mit 4 GB RAM.
Wir gehen davon aus, dass alle Befehle als root-Benutzer ausgeführt werden.

Wann sollten Sie den Docker-Daemon oder einen Docker-Container neu starten?

Starten Sie den Docker-Daemon neu, wenn Sie die Docker-Engine oder den Systemkern aktualisiert haben; die Docker-CLI reagiert nicht (ist eingefroren) oder Sie haben die Einstellungen in /etc/docker/daemon.json geändert (z. B. Speichertreiber, Protokolltreiber oder benutzerdefinierte Registries).

Starten Sie einen Docker-Container neu, wenn eine Anwendung innerhalb des Containers eingefroren ist, verzögert reagiert oder abgestürzt ist; wenn Sie eine Konfigurationsdatei der Anwendung geändert haben oder Dateivolumes für den Container eingebunden haben.

Den Docker-Daemon neu starten

Um Docker neu zu starten, müssen Sie lediglich einen einfachen Befehl ausführen, und schon sind Sie startklar:

systemctl restart docker

Bitte beachten Sie, dass systemctl restart docker standardmäßig alle Ihre laufenden Container neu startet. Sie können dies mit folgendem Befehl überprüfen:

docker info | grep "Live Restore"

Sollte die Ausgabe jedoch Live Restore Enabled: true anzeigen – was nicht die Standardeinstellung ist –, bleiben Ihre Container aktiv.
Verwenden Sie diesen Befehl, um „Live Restore“ zu aktivieren (die Container bleiben aktiv, wenn der Daemon neu gestartet wird):

tee /etc/docker/daemon.json <<EOF
{
 "live-restore": true
}
EOF
systemctl reload docker

Verwenden Sie diesen Befehl, um die Live-Wiederherstellung zu deaktivieren (die Container werden neu gestartet, wenn der Daemon neu gestartet wird):

tee /etc/docker/daemon.json <<EOF
{
 "live-restore": false
}
EOF
systemctl reload docker

Einen Docker-Container neu starten

Bevor Sie einen Container neu starten, sollten Sie dessen Namen oder ID ermitteln. Führen Sie den folgenden Befehl aus, um Ihre Container anzuzeigen:

docker ps

so starten sie docker neu

Hier sehen wir drei unserer Container; wir können sie mithilfe der CONTAINER ID oder der NAMES neu starten.
Starten wir beispielsweise „httpd“ zunächst anhand seines Namens und anschließend anhand seiner Container-ID neu:

docker restart httpd
docker restart 997f9dd62538

Am Status können wir erkennen, dass der Container neu gestartet wurde und nun seit 1 Sekunde läuft

so starten sie docker neu

Einen Container automatisch neu starten

Docker verfügt über Richtlinien zum Neustart von Containern beim Beenden oder beim Neustart von Docker selbst, sodass Sie keine Prozessmanager zum Starten von Containern verwenden müssen.
Es gibt 4 Neustartrichtlinien:
no - Den Container nicht neu starten.
on-failure [ :max-retries ] - Den Container bei einem Fehler neu starten; Sie können die Anzahl der Neustarts begrenzen.
always - Den Container immer neu starten, wenn er stoppt.
unless-stopped - Den Container immer neu starten, wenn er stoppt, es sei denn, Sie haben ihn manuell gestoppt.
Hier finden Sie Befehlsbeispiele für alle vier Neustartrichtlinien:

docker run -d --restart=no httpd
docker run -d --restart=on-failure:3 httpd
docker run -d --restart=always httpd
docker run -d --restart=unless-stopped httpd

so starten sie docker neu

Fazit

Zu wissen, wann und wie man Docker-Container neu startet, spart Zeit und verhindert unnötige Ausfallzeiten:

  • Verwenden Sie systemctl restart docker für Kern-Updates und Konfigurationsänderungen.
  • Verwenden Sie docker restart <Name/ID>, um eine bestimmte nicht mehr reagierende Anwendung schnell wiederherzustellen.
  • Legen Sie bei der Bereitstellung geeignete Neustartrichtlinien (--restart) fest, um die Wiederherstellung von Containern zu automatisieren.

Vergessen Sie nicht, sich unsere VPS-Server anzusehen – zu den besten Preisen auf dem Markt!

Blog