How to use docker stop

Wenn du mit Docker arbeitest und einen laufenden Container stoppen musst, ist der Befehl docker stop
dein Werkzeug der Wahl. Er ist einfach zu benutzen, aber es gibt einige Optionen, die du an deine Bedürfnisse anpassen kannst. Lass uns durchgehen, wie man diesen Befehl verwendet und seine Optionen mit einigen Beispielen erkunden.
Zunächst ist die grundlegende Art, einen Container zu stoppen, ziemlich simpel. Du tippst einfach:
docker stop [container_id_oder_name]
Wenn du zum Beispiel einen laufenden Container mit dem Namen my_container
hast, würdest du ihn so stoppen:
docker stop my_container
Dieser Befehl sendet ein SIGTERM
-Signal an den Hauptprozess des Containers, was ihm sagt, dass er anhalten soll. Nach einer kurzen Wartezeit, wenn der Prozess noch nicht gestoppt hat, wird Docker ein SIGKILL
-Signal senden, um ihn zum Stoppen zu zwingen. Diese Wartezeit ist normalerweise auf 10 Sekunden für Linux-Container und 30 Sekunden für Windows-Container eingestellt, aber du kannst sowohl das Signal als auch die Wartezeit ändern.
Das Stop-Signal ändern
Wenn du ein anderes Signal verwenden möchtest, um deinen Container zu stoppen, kannst du die Option --signal
oder -s
nutzen. Wenn du zum Beispiel sofort SIGKILL
anstelle von SIGTERM
verwenden möchtest, könntest du das so machen:
docker stop --signal SIGKILL my_container
Du kannst auch die Signalnummer anstelle des Namens verwenden. Für SIGKILL
, was Signalnummer 9 ist, würde der Befehl so aussehen:
docker stop --signal 9 my_container
Denk daran, dass das Standardsignal im Dockerfile mit der STOPSIGNAL
-Anweisung oder beim Starten des Containers mit der Option --stop-signal
geändert werden kann.
Ein benutzerdefiniertes Timeout setzen
Manchmal brauchst du vielleicht mehr oder weniger Zeit, damit dein Container ordnungsgemäß stoppen kann. Das kannst du mit der Option --time
oder -t
anpassen. Um deinem Container zum Beispiel 30 Sekunden statt der Standardzeit zum Stoppen zu geben, würdest du Folgendes verwenden:
docker stop --time 30 my_container
Wenn du unbegrenzt warten möchtest, bis der Container stoppt, ohne ihn mit SIGKILL
zu zwingen, kannst du die Zeit auf -1
setzen:
docker stop --time -1 my_container
Das sagt Docker, dass es warten soll, bis der Container von selbst stoppt.
Alles zusammenbringen
Nehmen wir an, du hast einen Container namens web_server
und möchtest ihn mit SIGINT
(was Signalnummer 2 ist) stoppen und ihm 60 Sekunden Zeit zum Stoppen geben. Dein Befehl wäre:
docker stop --signal SIGINT --time 60 web_server
Dieser Befehl sendet SIGINT
an deinen web_server
-Container und gibt ihm eine volle Minute Zeit, um ordnungsgemäß herunterzufahren, bevor Docker mit einem SIGKILL
eingreift.
Mit diesen Optionen gibt dir docker stop
die Flexibilität, deine Container so zu verwalten, wie es für deine Anwendungen am besten funktioniert. Egal, ob du einen Container schnell stoppen oder ihm Zeit geben möchtest, Aufgaben zu beenden – du kannst den Befehl an deine Bedürfnisse anpassen.