Gibt es einen Befehl, der den Befehl docker stop
und kombinieren kann docker rm
? Jedes Mal, wenn ich einen laufenden Container löschen möchte, muss ich zwei Befehle nacheinander ausführen. Ich frage mich, ob es einen kombinierten Befehl gibt, der diesen Prozess vereinfachen kann.
docker stop CONTAINER_ID
docker rm CONTATINER_ID
Antworten:
Sie können verwenden:
Der Container wird entfernt, auch wenn er noch läuft.
https://docs.docker.com/engine/reference/commandline/rm/
Sie können Ihre Container auch mit
--rm
Option ausführen. Diese werden beim Stoppen automatisch entfernt.https://docs.docker.com/engine/reference/run/#clean-up-rm
Bearbeiten: Das
rm -f
kann für Ihre Daten gefährlich sein und eignet sich am besten für Test- oder Entwicklungscontainer. @ Bernards Kommentar zu diesem Thema ist lesenswert.quelle
docker rm -f
sendet ein SIGKILL-Signal an den Container. Dadurch kann es sein, dass der Container keine Zeit hat, seinen Status korrekt zu speichern. Für nicht staatenlose Container sollte man wirklichdocker stop
gefolgt von verwendendocker rm
. Dies sendet ein SIGTERM-Signal, das den Containern standardmäßig maximal 10 Sekunden Zeit gibt, um das Herunterfahren durchzuführen, bevor der Docker-Daemon schließlich ein SIGKILL sendet.quelle
Sie können den Container mit einem einzigen Befehl stoppen und entfernen, der
$_
Ihnen das letzte Echo gibtquelle
In meinem Fall, um alle laufenden Container zu entfernen, habe ich verwendet
quelle
https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/
Sie können kill verwenden und mit rm und dem Force-Flag wird auch kill verwendet.
quelle
Entfernen Sie alle Behälter:
docker ps -aq | xargs docker rm -f
quelle
sudo docker ps -aq | sudo xargs docker rm -f
Dadurch werden alle Bilder angehalten und entfernt, einschließlich der laufenden Container, während wir -f verwenden
quelle
Verwenden Sie den Befehl docker ps mit dem Flag -a, um den Namen oder die ID der Container zu suchen, die Sie entfernen möchten
So entfernen Sie: $ docker rm ID_oder_Name ID_oder_Name
Entfernen Sie einen Behälter beim Verlassen:
Wenn Sie beim Erstellen eines Containers wissen, dass Sie ihn nicht mehr behalten möchten, wenn Sie fertig sind, können Sie Docker run --rm ausführen, um ihn beim Beenden automatisch zu löschen.
Ausführen und entfernen:
docker run --rm image_name
Entfernen Sie alle verlassenen Behälter:
Sie können Container mit Docker ps -a suchen und nach ihrem Status filtern: erstellt, neu gestartet, ausgeführt, angehalten oder beendet. Verwenden Sie zum Überprüfen der Liste der verlassenen Container das Flag -f, um nach dem Status zu filtern. Wenn Sie überprüft haben, dass Sie diese Container entfernen möchten, übergeben Sie die IDs mit -q an den Befehl docker rm.
Aufführen:
Entfernen Sie Behälter mit mehr als einem Filter :
Docker-Filter können kombiniert werden, indem das Filter-Flag mit einem zusätzlichen Wert wiederholt wird. Dies führt zu einer Liste von Containern, die beide Bedingungen erfüllen. Wenn Sie beispielsweise alle Container löschen möchten, die entweder als Erstellt (ein Status, der auftreten kann, wenn Sie einen Container mit einem ungültigen Befehl ausführen) oder Beendet markiert sind, können Sie zwei Filter verwenden:
Halten Sie an und entfernen Sie alle Behälter:
quelle
Zum Entfernen eines einzelnen Behälters
Zum Entfernen aller Behälter
quelle
Alle angehaltenen Behälter entfernen
docker system prune
docker stop CONTAINER_ID
Warten Sie 10 Sekunden, um den Live-Container zu stoppen, und rufen Sie andocker kill CONTAINER_ID
Oder mit
docker kill CONTAINER_ID
können Sie den Container sofort stoppenquelle