Android

Hoe docker-containers, afbeeldingen, volumes en netwerken te verwijderen

Block EVERY Online Ad with THIS - Pi-Hole on Raspberry Pi

Block EVERY Online Ad with THIS - Pi-Hole on Raspberry Pi

Inhoudsopgave:

Anonim

Met Docker kunt u snel applicaties bouwen, testen en implementeren als draagbare, zelfvoorzienende containers die vrijwel overal kunnen worden uitgevoerd.

Docker verwijdert geen ongebruikte objecten zoals containers, afbeeldingen, volumes en netwerken, tenzij u dit uitdrukkelijk aangeeft. Terwijl u met Docker werkt, kunt u gemakkelijk een groot aantal ongebruikte objecten verzamelen die aanzienlijke schijfruimte in beslag nemen en de uitvoer die door de Docker-opdrachten wordt geproduceerd, vervuilen.

Deze handleiding dient als een "spiekbriefje" om Docker-gebruikers te helpen hun systeem georganiseerd te houden en om schijfruimte vrij te maken door ongebruikte Docker-containers, afbeeldingen, volumes en netwerken te verwijderen.

Alle ongebruikte objecten verwijderen

De opdracht docker system prune verwijdert alle gestopt containers, alle hangende afbeeldingen en alle ongebruikte netwerken:

docker system prune

U wordt gevraagd om door te gaan, gebruik de vlag -f of --force om de prompt te omzeilen.

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

Dockercontainers verwijderen

Docker-containers worden niet automatisch verwijderd wanneer u ze stopt, tenzij u de container start met de vlag --rm .

Verwijder een of meer containers

Om een ​​of meer Docker-afbeeldingen te verwijderen, gebruikt u de opdracht docker container rm gevolgd door het ID van de containers die u wilt verwijderen.

U kunt een lijst van alle containers krijgen door de vlag -a door te geven aan de opdracht docker container ls van de docker container ls :

docker container ls -a

De output zou er ongeveer zo uit moeten zien:

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

Zodra u het CONTAINER ID kent van de containers die u wilt verwijderen, geeft u dit door aan de opdracht docker container rm van de docker container rm . Als u bijvoorbeeld de eerste twee containers uit de bovenstaande uitvoer wilt verwijderen, voert u uit:

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.

Verwijder alle gestopt containers

Voordat u de verwijderopdracht uitvoert, kunt u een lijst krijgen met alle niet-actieve (gestopt) containers die worden verwijderd met de volgende opdracht:

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

Om alle gestopt containers te verwijderen, gebruikt u de docker container prune opdracht:

docker container prune

U wordt gevraagd om door te gaan, gebruik de vlag -f of --force om de prompt te omzeilen.

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

Verwijder containers met behulp van filters

Met de opdracht docker container prune kunt u containers verwijderen op basis van voorwaarde met behulp van de --filter .

Op het moment dat dit artikel wordt geschreven, zijn de momenteel ondersteunde filters until en met label . U kunt meer dan één filter gebruiken met behulp van vlaggen met meerdere --filter .

Als u bijvoorbeeld alle afbeeldingen wilt verwijderen die meer dan 12 uur geleden zijn gemaakt, voert u het volgende uit:

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

Stop en verwijder alle containers

U kunt een lijst krijgen van alle Docker-containers op uw systeem met de opdracht docker container ls -aq .

Om alle actieve containers te stoppen, gebruikt u de opdracht docker container stop gevolgd door een lijst met alle container-ID's.

docker container stop $(docker container ls -aq)

Zodra alle containers zijn gestopt, kunt u ze verwijderen met de opdracht docker container rm gevolgd door de containers ID-lijst.

docker container rm $(docker container ls -aq)

Docker-afbeeldingen verwijderen

Verwijder een of meer afbeeldingen

Om een ​​of meer Docker-afbeeldingen te verwijderen, gebruikt u de opdracht docker images ls de docker images ls om de ID te vinden van de afbeeldingen die u wilt verwijderen.

docker image ls

De output zou er ongeveer zo uit moeten zien:

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

Nadat u de afbeeldingen hebt gevonden die u wilt verwijderen, geeft u hun IMAGE ID aan de opdracht docker image rm . Als u bijvoorbeeld de eerste twee afbeeldingen in de uitvoer hierboven wilt verwijderen, voert u uit:

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

Bungelende afbeeldingen verwijderen

Docker biedt een opdracht voor het docker image prune een docker image prune die kan worden gebruikt om bengelde en ongebruikte afbeeldingen te verwijderen.

Een bungelende afbeelding is een afbeelding die niet is getagd en door geen enkele container wordt gebruikt. Om hangende afbeeldingen te verwijderen, typt u:

docker image prune

U wordt gevraagd om door te gaan, gebruik de vlag -f of --force om de prompt te omzeilen.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Bij het verwijderen van hangende afbeeldingen en als de door u gemaakte afbeeldingen niet zijn getagd, worden ze ook verwijderd.

Verwijder alle ongebruikte afbeeldingen

Om alle afbeeldingen te verwijderen waarnaar niet wordt verwezen door een bestaande container, niet alleen de hangende, gebruikt u de opdracht prune met de vlag -a :

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

Verwijder afbeeldingen met behulp van filters

Met de opdracht docker image prune kunt u ook afbeeldingen verwijderen op basis van een bepaalde voorwaarde met behulp van de --filter .

Op het moment dat dit artikel wordt geschreven, zijn de momenteel ondersteunde filters until en met label . U kunt meer dan één filter gebruiken met behulp van vlaggen met meerdere --filter .

Als u bijvoorbeeld alle afbeeldingen wilt verwijderen die meer dan 12 uur geleden zijn gemaakt, gaat u als volgt te werk:

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

Docker-volumes verwijderen

Verwijder een of meer volumes

Om een ​​of meer Docker-volumes te verwijderen, gebruikt u de opdracht docker volume ls om de ID te vinden van de volumes die u wilt verwijderen.

docker volume ls

De output zou er ongeveer zo uit moeten zien:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Zodra u de VOLUME NAME van de volumes die u wilt verwijderen hebt gevonden, geeft u deze door aan de opdracht docker volume rm . Om bijvoorbeeld het eerste volume uit de bovenstaande output te verwijderen, voer je het volgende uit:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

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

Verwijder alle ongebruikte volumes

Om alle ongebruikte volumes te verwijderen, gebruikt u de opdracht docker image prune :

docker volume prune

U wordt gevraagd om door te gaan, gebruik de vlag -f of --force om de prompt te omzeilen.

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

Docker-netwerken verwijderen

Verwijder een of meer netwerken

Om een ​​of meer Docker-netwerken te verwijderen, gebruikt u de opdracht docker network ls het docker network ls om de ID te vinden van de netwerken die u wilt verwijderen.

docker network ls

De output zou er ongeveer zo uit moeten zien:

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

Nadat u de netwerken hebt gevonden die u wilt verwijderen, geeft u hun NETWORK ID aan de opdracht docker network rm . Om bijvoorbeeld het netwerk te verwijderen met de naam my-bridge-network run:

docker network rm c520032c3d31

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

Verwijder alle ongebruikte netwerken

Gebruik de opdracht docker network prune om alle ongebruikte netwerken te verwijderen.

docker network prune

U wordt gevraagd om door te gaan, gebruik de vlag -f of --force om de prompt te omzeilen.

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

Verwijder netwerken met behulp van filters

Met de opdracht docker network prune kunt u netwerken verwijderen op basis van voorwaarde met behulp van de --filter .

Op het moment dat dit artikel wordt geschreven, zijn de momenteel ondersteunde filters until en met label . U kunt meer dan één filter gebruiken met behulp van vlaggen met meerdere --filter .

Voer bijvoorbeeld het volgende uit om alle netwerken te verwijderen die meer dan 12 uur geleden zijn gemaakt:

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

Conclusie

In deze gids hebben we u enkele van de algemene opdrachten getoond voor het verwijderen van Docker-containers, afbeeldingen, volumes en netwerken.

Bekijk ook de officiële Docker-documentatie.

havenarbeider