Loading...

How to use docker stop

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
3 min

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.

Willkommen in der Container-Cloud

Sliplane macht es einfach, Container in der Cloud zu deployen und bei Bedarf zu skalieren. Probier es jetzt aus!