Android

Hur man tar bort dockningsbehållare, bilder, volymer och nätverk

눈 그리기 튜토리얼 이론 설명

눈 그리기 튜토리얼 이론 설명

Innehållsförteckning:

Anonim

Med Docker kan du snabbt bygga, testa och distribuera applikationer som bärbara, självförsörjande containrar som kan köras praktiskt taget var som helst.

Docker tar inte bort oanvända objekt som containrar, bilder, volymer och nätverk såvida du inte uttryckligen säger det att göra det. När du arbetar med Docker kan du enkelt ackumulera ett stort antal oanvända objekt som förbrukar betydande diskutrymme och röran om utdata som produceras av Docker-kommandona.

Den här guiden fungerar som ett "fuskark" för att hjälpa Docker-användare att hålla sitt system organiserat och för att frigöra diskutrymme genom att ta bort oanvända Docker-behållare, bilder, volymer och nätverk.

Ta bort alla oanvända föremål

docker system prune bort alla stoppade containrar, alla dinglande bilder och alla oanvända nätverk:

docker system prune

Du blir ombedd att fortsätta, använd flaggan -f eller - --force att kringgå prompten.

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

Ta bort Docker-behållare

Docker-behållare tas inte automatiskt bort när du stoppar dem om du inte startar behållaren med flaggan --rm .

Ta bort en eller flera behållare

För att ta bort en eller flera Docker-bilder använd docker container rm följt av ID för behållarna du vill ta bort.

Du kan få en lista över alla containrar genom att skicka -a flaggan till docker container ls :

docker container ls -a

Utgången ska se ut så här:

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

När du känner till CONTAINER ID för behållarna du vill ta bort, skicka det till docker container rm . Till exempel för att ta bort de första två behållarna som listas i utgången ovan kör:

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.

Ta bort alla stoppade behållare

Innan du tar bort borttagningskommandot kan du få en lista med alla behållare som inte körs (stoppas) som kommer att tas bort med följande kommando:

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

För att ta bort alla stoppade containrar använder docker container prune kommandot docker container prune :

docker container prune

Du blir ombedd att fortsätta, använd flaggan -f eller - --force att kringgå prompten.

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

Ta bort behållare med filter

docker container prune låter dig ta bort behållare baserat på villkor med hjälp av filtreringsflaggan - --filter .

Vid skrivandet av denna artikel är de för närvarande stödda filtren until och label . Du kan använda mer än ett filter genom att använda --filter .

För att ta bort alla bilder som skapades för mer än 12 timmar sedan, kör:

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

Stoppa och ta bort alla behållare

Du kan få en lista över alla Docker-containrar på ditt system med docker container ls -aq .

För att stoppa alla körande containrar använder du docker container stop följt av en lista med alla containerns ID: er.

docker container stop $(docker container ls -aq)

När alla behållare har stoppats kan du ta bort dem med docker container rm följt av containerns ID-lista.

docker container rm $(docker container ls -aq)

Ta bort Docker-bilder

Ta bort en eller flera bilder

För att ta bort en eller flera Docker-bilder använder docker images ls kommandot docker images ls att hitta ID för de bilder du vill ta bort.

docker image ls

Utgången ska se ut så här:

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

När du har hittat de bilder du vill ta bort, skicka deras IMAGE ID till docker image rm . För att ta bort de två första bilderna som anges i utgången ovan körs till exempel:

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

Ta bort dinglande bilder

Docker tillhandahåller ett docker image prune som kan användas för att ta bort dinglade och oanvända bilder.

En dinglande bild är en bild som inte är taggad och inte används av någon behållare. Så här tar du bort dinglande bilder:

docker image prune

Du blir ombedd att fortsätta, använd flaggan -f eller - --force att kringgå prompten.

WARNING! This will remove all dangling images. Are you sure you want to continue? y När du tar bort dinglande bilder, om bilderna byggs av dig inte är taggade, kommer de också att tas bort.

Ta bort alla oanvända bilder

För att ta bort alla bilder som inte nämns av någon befintlig behållare, inte bara de dinglande bilderna, använd prune med -a flaggan:

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

Ta bort bilder med filter

Med docker image prune av docker image prune kan du också ta bort bilder baserade på ett visst villkor med hjälp av filtreringsflaggan - --filter .

Vid skrivandet av denna artikel är de för närvarande stödda filtren until och label . Du kan använda mer än ett filter genom att använda --filter .

För att ta bort alla bilder som skapades för mer än 12 timmar sedan skulle du köra:

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

Ta bort Docker-volymer

Ta bort en eller flera volymer

För att ta bort en eller flera Docker-volymer använd docker volume ls att hitta ID för de volymer du vill ta bort.

docker volume ls

Utgången ska se ut så här:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

När du har hittat VOLUME NAME för volymerna du vill ta bort, skicka dem till docker volume rm . För att ta bort den första volymen som anges i utgången ovan, kör:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

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

Ta bort alla oanvända volymer

För att ta bort alla oanvända volymer använd docker image prune :

docker volume prune

Du blir ombedd att fortsätta, använd flaggan -f eller - --force att kringgå prompten.

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

Ta bort Docker-nätverk

Ta bort ett eller flera nätverk

För att ta bort ett eller flera Docker-nätverk, använd docker network ls att hitta ID för de nätverk du vill ta bort.

docker network ls

Utgången ska se ut så här:

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

När du har hittat de nätverk du vill ta bort, skicka deras NETWORK ID till docker network rm . Till exempel för att ta bort nätverket med namnet my-bridge-network :

docker network rm c520032c3d31

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

Ta bort allt oanvändt nätverk

Använd docker network prune att ta bort alla oanvända nätverk.

docker network prune

Du blir ombedd att fortsätta, använd flaggan -f eller - --force att kringgå prompten.

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

Ta bort nätverk med filter

Med docker network prune du ta bort nätverk baserat på villkor med hjälp av filtreringsflaggan - --filter .

Vid skrivandet av denna artikel är de för närvarande stödda filtren until och label . Du kan använda mer än ett filter genom att använda --filter .

Kör till exempel för att ta bort alla nätverk som skapades för mer än 12 timmar sedan:

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

Slutsats

I den här guiden har vi visat dig några av de vanliga kommandona för att ta bort Docker-behållare, bilder, volymer och nätverk.

Du bör också kolla in den officiella Docker-dokumentationen.

hamnarbetare