Android

So entfernen Sie Docker-Container, Images, Volumes und Netzwerke

Windows 10 auf Synology DiskStation installieren (Virtual Machine Manager) | iDomiX

Windows 10 auf Synology DiskStation installieren (Virtual Machine Manager) | iDomiX

Inhaltsverzeichnis:

Anonim

Mit Docker können Sie schnell Anwendungen als tragbare, autarke Container erstellen, testen und bereitstellen, die praktisch überall ausgeführt werden können.

Docker entfernt keine nicht verwendeten Objekte wie Container, Images, Volumes und Netzwerke, es sei denn, Sie weisen dies ausdrücklich an. Während Sie mit Docker arbeiten, können Sie auf einfache Weise eine große Anzahl nicht verwendeter Objekte ansammeln, die viel Speicherplatz beanspruchen und die Ausgabe der Docker-Befehle überladen.

Dieses Handbuch dient als „Spickzettel“, der Docker-Benutzern hilft, ihr System zu organisieren und Speicherplatz freizugeben, indem nicht verwendete Docker-Container, Images, Volumes und Netzwerke entfernt werden.

Alle nicht verwendeten Objekte entfernen

Mit dem docker system prune Befehl zum docker system prune werden alle angehaltenen Container, alle baumelnden Bilder und alle nicht verwendeten Netzwerke entfernt:

docker system prune

Sie werden aufgefordert, fortzufahren. Verwenden Sie die --force -f oder --force , um die Eingabeaufforderung zu umgehen.

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue?

docker system prune --volumes

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y

Docker-Container entfernen

Docker-Container werden nicht automatisch entfernt, wenn Sie sie anhalten, es sei denn, Sie starten den Container mit dem Flag --rm .

Entfernen Sie einen oder mehrere Behälter

Verwenden Sie zum Entfernen eines oder mehrerer Docker-Images den Befehl docker container rm gefolgt von der ID der Container, die Sie entfernen möchten.

Sie können eine Liste aller Container docker container ls indem Sie das Flag -a an den Befehl docker container ls des docker container ls :

docker container ls -a

Die Ausgabe sollte ungefähr so ​​aussehen:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani

Wenn Sie die CONTAINER ID der Container kennen, die Sie löschen möchten, übergeben Sie sie an den Befehl docker container rm . Um beispielsweise die ersten beiden Container zu entfernen, die in der obigen Ausgabe aufgeführt sind, führen Sie Folgendes aus:

docker container rm cc3f2ff51cab cd20b396a061

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

Entfernen Sie alle gestoppten Behälter

Bevor Sie den Befehl zum Entfernen ausführen, können Sie eine Liste aller nicht ausgeführten (angehaltenen) Container abrufen, die mit dem folgenden Befehl entfernt werden:

docker container ls -a --filter status=exited --filter status=created

Um alle angehaltenen Container zu entfernen, verwenden Sie den Befehl docker container prune :

docker container prune

Sie werden aufgefordert, fortzufahren. Verwenden Sie die --force -f oder --force , um die Eingabeaufforderung zu umgehen.

WARNING! This will remove all stopped containers. Are you sure you want to continue? y

Behälter mit Filtern entfernen

Mit dem docker container prune Befehl zum --filter docker container prune können Sie Container basierend auf der Bedingung mithilfe des --filter .

Zum Zeitpunkt des Schreibens dieses Artikels sind die derzeit unterstützten Filter until und label . Sie können mehr als einen Filter verwenden, indem Sie mehrere --filter Flags verwenden.

Um beispielsweise alle Bilder zu entfernen, die vor mehr als 12 Stunden erstellt wurden, führen Sie Folgendes aus:

docker container prune --filter "until=12h"

Stoppen Sie und entfernen Sie alle Behälter

Mit dem Befehl docker container ls -aq des Docker-Containers können Sie eine Liste aller Docker-Container auf Ihrem System docker container ls -aq .

Um alle laufenden Container zu stoppen, verwenden Sie den Befehl docker container stop gefolgt von einer Liste aller Container-IDs.

docker container stop $(docker container ls -aq)

Sobald alle Container gestoppt sind, können Sie sie mit dem Befehl docker container rm gefolgt von der Container-ID-Liste entfernen.

docker container rm $(docker container ls -aq)

Docker-Images entfernen

Entfernen Sie ein oder mehrere Bilder

Um ein oder mehrere Docker-Bilder zu entfernen, verwenden Sie den Befehl docker images ls für docker images ls , um die ID der Bilder zu ermitteln, die Sie entfernen möchten.

docker image ls

Die Ausgabe sollte ungefähr so ​​aussehen:

REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB

Wenn Sie die Bilder gefunden haben, die Sie entfernen möchten, übergeben Sie ihre IMAGE ID an den Befehl docker image rm . Um beispielsweise die ersten beiden in der obigen Ausgabe aufgelisteten Bilder zu entfernen, führen Sie Folgendes aus:

docker image rm 75835a67d134 2a4cca5ac898

Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134

Entfernen Sie herabhängende Bilder

Docker bietet einen docker image prune Befehl zum Löschen von Bildern, mit dem nicht mehr verwendete und nicht mehr verwendete Bilder entfernt werden können.

Ein baumelndes Bild ist ein Bild, das nicht markiert ist und von keinem Container verwendet wird. So entfernen Sie baumelnde Bilder:

docker image prune

Sie werden aufgefordert, fortzufahren. Verwenden Sie die --force -f oder --force , um die Eingabeaufforderung zu umgehen.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Wenn beim Entfernen von baumelnden Bildern die von Ihnen erstellten Bilder nicht markiert sind, werden sie ebenfalls entfernt.

Entfernen Sie alle nicht verwendeten Bilder

Verwenden Sie den Befehl prune mit dem Flag -a um alle Bilder zu entfernen, auf die von keinem vorhandenen Container verwiesen wird, nicht nur die baumelnden.

docker image prune -a

WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y

Bilder mit Filtern entfernen

Mit dem docker image prune Befehl zum --filter Bildern können Sie auch Bilder entfernen, die auf einer bestimmten Bedingung basieren, indem Sie das Filter-Flag --filter .

Zum Zeitpunkt des Schreibens dieses Artikels sind die derzeit unterstützten Filter until und label . Sie können mehr als einen Filter verwenden, indem Sie mehrere --filter Flags verwenden.

Um beispielsweise alle Bilder zu entfernen, die vor mehr als 12 Stunden erstellt wurden, führen Sie Folgendes aus:

docker image prune -a --filter "until=12h"

Docker-Volumes entfernen

Entfernen Sie ein oder mehrere Volumes

Um ein oder mehrere Docker-Volumes zu entfernen, verwenden Sie den docker volume ls Befehl docker volume ls , um die ID der Volumes zu ermitteln, die Sie entfernen möchten.

docker volume ls

Die Ausgabe sollte ungefähr so ​​aussehen:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Wenn Sie den VOLUME NAME der zu entfernenden Volumes gefunden haben, übergeben Sie ihn an den docker volume rm Befehl docker volume rm . Führen Sie beispielsweise Folgendes aus, um das erste in der obigen Ausgabe aufgeführte Volume zu entfernen:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -

Entfernen Sie alle nicht verwendeten Volumes

Verwenden Sie den Befehl docker image prune um alle nicht verwendeten Volumes zu entfernen:

docker volume prune

Sie werden aufgefordert, fortzufahren. Verwenden Sie die --force -f oder --force , um die Eingabeaufforderung zu umgehen.

WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?

Docker-Netzwerke entfernen

Entfernen Sie ein oder mehrere Netzwerke

Um ein oder mehrere Docker-Netzwerke zu entfernen, verwenden Sie den docker network ls Befehl docker network ls , um die ID der Netzwerke zu ermitteln, die Sie entfernen möchten.

docker network ls

Die Ausgabe sollte ungefähr so ​​aussehen:

NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local

Sobald Sie die Netzwerke gefunden haben, die Sie entfernen möchten, übergeben Sie deren NETWORK ID an den docker network rm Befehl docker network rm . So entfernen Sie beispielsweise das Netzwerk mit dem Namen my-bridge-network run:

docker network rm c520032c3d31

Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

Entfernen Sie alle nicht verwendeten Netzwerke

Verwenden Sie den docker network prune Befehl zum docker network prune , um alle nicht verwendeten Netzwerke zu entfernen.

docker network prune

Sie werden aufgefordert, fortzufahren. Verwenden Sie die --force -f oder --force , um die Eingabeaufforderung zu umgehen.

WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?

Entfernen Sie Netzwerke mithilfe von Filtern

Mit dem docker network prune Befehl zum docker network prune können Sie Netzwerke basierend auf der Bedingung mithilfe des --filter .

Zum Zeitpunkt des Schreibens dieses Artikels sind die derzeit unterstützten Filter until und label . Sie können mehr als einen Filter verwenden, indem Sie mehrere --filter Flags verwenden.

Um beispielsweise alle Netzwerke zu entfernen, die vor mehr als 12 Stunden erstellt wurden, führen Sie Folgendes aus:

docker network prune -a --filter "until=12h"

Fazit

In diesem Handbuch haben wir Ihnen einige der allgemeinen Befehle zum Entfernen von Docker-Containern, Images, Volumes und Netzwerken gezeigt.

Sie sollten auch die offizielle Docker-Dokumentation lesen.

Docker