Das --restart-Flag für Docker-Container wird verwendet, um die Restart-Policy des Containers zu definieren. Die beiden Optionen, --restart=unless-stopped und --restart=immer, weisen einige subtile, aber wichtige Unterschiede auf:
--restart=immer:
- Der Behälter wird immer versuchen, neu zu starten, egal wie er gestoppt hat.
- Wenn der Container abstürzt, startet er automatisch neu.
- Wenn der Docker-Daemon neu gestartet wird, startet auch der Container automatisch.
- Selbst wenn der Container manuell gestoppt wird (also mit dem docker-Stopp-Befehl), startet er neu, wenn der Docker-Daemon neu startet.
--restart=unless-stopped:
- Der Container startet automatisch neu, wenn er abstürzt.
- Wenn der Docker-Daemon neu gestartet wird, startet auch der Container automatisch.
- Wesentlicher Unterschied: Wenn ein Container manuell gestoppt wird (z. B. mit dem Docker-Stopp-Befehl), startet er beim Neustart des Docker-Dämons nicht automatisch.
Zusammenfassung der wichtigsten Unterschiede:
Die Always-Richtlinie versucht, den Container in allen Fällen neu zu starten, auch nach einem manuellen Stopp. Nicht-gestoppte StrategieRespektiere die Entscheidung, manuell aufzuhören,, der den Container nach einem manuellen Stopp nicht automatisch neu startet.
Auswahlempfehlungen:
Wenn du willst, dass der Container die ganze Zeit läuft, egal was passiert, wähle immer. Wenn du den Container manuell stoppen und auch nach einem Docker-Neustart gestoppt halten möchtest, wähle unless-stopped aus. Diese Wahl ist wichtig für das Management und die Wartung von Containern, insbesondere wenn bestimmte Dienste vorübergehend gestoppt oder gewartet werden müssen. unless-stopped gilt im Allgemeinen als flexiblere Option, da es Administratoren erlaubt, den Zustand des Containers bei Bedarf manuell zu steuern.
|