Container mit Standardsignal und Timeout stoppen
In diesem Schritt lernen Sie, wie Sie einen laufenden Docker-Container mit dem Standardsignal und Timeout stoppen. Wenn Sie einen Container stoppen, sendet Docker ein Signal an den Hauptprozess im Container. Standardmäßig sendet Docker das SIGTERM
-Signal, das den Prozess anweist, sich ordnungsgemäß zu beenden. Falls der Prozess nicht innerhalb des Standard-Timeout-Zeitraums (normalerweise 10 Sekunden) beendet wird, sendet Docker ein SIGKILL
-Signal, um den Prozess zwangsweise zu terminieren.
Zuerst starten wir einen Container, der aktiv bleibt. Wir verwenden das ubuntu
-Image und führen einen einfachen Befehl aus, der den Container am Laufen hält.
docker pull ubuntu
Sie sollten eine Ausgabe sehen, die anzeigt, dass das ubuntu
-Image heruntergeladen wird.
Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Nun führen wir den ubuntu
-Container im Detached-Modus (-d
) aus, sodass er im Hintergrund läuft, und führen einen Befehl aus, der ihn dauerhaft aktiv hält (z.B. tail -f /dev/null
).
docker run -d ubuntu tail -f /dev/null
Dieser Befehl gibt die Container-ID aus.
<container_id>
Sie können überprüfen, ob der Container läuft, indem Sie den Befehl docker ps
verwenden:
docker ps
Sie sollten den ubuntu
-Container mit dem Status Up
sehen.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" About a minute ago Up About a minute ago <container_name>
Nun stoppen wir diesen laufenden Container mit dem Befehl docker stop
. Sie können entweder die Container-ID oder den Containernamen verwenden. Ersetzen Sie <container_id>
durch die tatsächliche ID Ihres laufenden Containers.
docker stop <container_id>
Der Befehl gibt die ID des gestoppten Containers aus.
<container_id>
Nach Ausführung des docker stop
-Befehls erhält der Container das SIGTERM
-Signal. Docker wartet das Standard-Timeout (10 Sekunden) ab, damit sich der Container ordnungsgemäß beenden kann. Falls er innerhalb dieser Zeit nicht stoppt, wird SIGKILL
gesendet.
Sie können überprüfen, ob der Container gestoppt wurde, indem Sie erneut docker ps
ausführen.
docker ps
Der ubuntu
-Container sollte nicht mehr in der Ausgabe von docker ps
erscheinen (die nur laufende Container anzeigt). Um alle Container einschließlich der gestoppten zu sehen, verwenden Sie docker ps -a
.
docker ps -a
Sie sollten den ubuntu
-Container mit dem Status Exited
sehen.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" About a minute ago Exited (0) About a minute ago <container_name>
Dies bestätigt, dass der Container erfolgreich mit dem Standardsignal und Timeout gestoppt wurde.