Android

Hvordan fjerne dockercontainere, bilder, volumer og nettverk

Docker Container Tutorial #1 Containers vs Images

Docker Container Tutorial #1 Containers vs Images

Innholdsfortegnelse:

Anonim

Docker lar deg raskt bygge, teste og distribuere applikasjoner som bærbare, selvforsynende containere som kan kjøre praktisk talt hvor som helst.

Docker fjerner ikke ubrukte objekter som containere, bilder, volumer og nettverk, med mindre du eksplisitt sier fra om det. Når du jobber med Docker, kan du enkelt samle et stort antall ubrukte objekter som bruker betydelig diskplass og rotere resultatet som produseres av Docker-kommandoene.

Denne guiden fungerer som et "jukseark" for å hjelpe Docker-brukere med å holde systemet organisert, og for å frigjøre diskplass ved å fjerne ubrukte Docker-containere, bilder, volumer og nettverk.

Fjerne alle ubrukte objekter

Kommandoen for docker system prune vil fjerne alle stoppede containere, alle dinglende bilder og alle ubrukte nettverk:

docker system prune

Du blir bedt om å fortsette, bruk flagg -f eller - --force å omgå ledeteksten.

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

Fjerne Docker-containere

Docker-containere fjernes ikke automatisk når du stopper dem med mindre du starter beholderen ved å bruke --rm flagget.

Fjern en eller flere beholdere

For å fjerne ett eller flere Docker-bilder bruker du docker container rm kommandoen etterfulgt av IDen til beholderne du vil fjerne.

Du kan få en liste over alle containere ved å sende -a flagget til kommandoen for docker container ls :

docker container ls -a

Utgangen skal se slik ut:

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 kjenner CONTAINER ID til containerne du vil slette, kan du sende den til docker container rm kommandoen. For å fjerne de to første beholderne som er oppført i utgangen over kjører du for eksempel:

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.

Fjern alle stoppede containere

Før du utfører fjerningskommandoen, kan du få en liste over alle containere som ikke kjører (stoppet) som vil bli fjernet ved hjelp av følgende kommando:

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

For å fjerne alle stoppede containere, bruk kommandoen docker container prune :

docker container prune

Du blir bedt om å fortsette, bruk flagg -f eller - --force å omgå ledeteksten.

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

Fjern containere ved hjelp av filtre

Kommandoen for --filter lar deg fjerne containere basert på tilstand ved hjelp av --filter .

På det tidspunktet denne artikkelen skrives, er de for øyeblikket støttede filtrene until og label . Du kan bruke mer enn ett filter ved å bruke flere - --filter .

For å fjerne alle bilder som er opprettet for mer enn 12 timer siden, løper du for eksempel:

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

Stopp og fjern alle containere

Du kan få en liste over alle Docker-containere på systemet ditt ved å bruke kommandoen docker container ls -aq .

For å stoppe alle kjører containere bruker du docker container stop kommandoen etterfulgt av en liste over alle containere-ID-er.

docker container stop $(docker container ls -aq)

Når alle containere er stoppet, kan du fjerne dem ved å bruke kommandoen docker container rm etterfulgt av containerne ID-listen.

docker container rm $(docker container ls -aq)

Fjerne Docker-bilder

Fjern ett eller flere bilder

For å fjerne ett eller flere Docker-bilder bruker du kommandoen docker images ls å finne IDen til bildene du vil fjerne.

docker image ls

Utgangen skal se slik ut:

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 funnet bildene du vil fjerne, kan du sende IMAGE ID til kommandoen docker image rm . For å fjerne de to første bildene som er oppført i utdata over kjører du for eksempel:

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

Fjern dinglende bilder

Docker gir en docker image prune som kan brukes til å fjerne dinglede og ubrukte bilder.

Et dinglende bilde er et bilde som ikke er merket og ikke brukes av noen beholder. Slik fjerner du dinglende bilder:

docker image prune

Du blir bedt om å fortsette, bruk flagg -f eller - --force å omgå ledeteksten.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Når du fjerner dinglende bilder, hvis bildene som bygges av deg ikke er merket, blir de også fjernet.

Fjern alle ubrukte bilder

For å fjerne alle bilder som ikke er referert til av en eksisterende beholder, ikke bare de dinglende, bruker du prune med -a flagget:

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

Fjern bilder ved hjelp av filtre

Med kommandoen for --filter av docker image prune , kan du også fjerne bilder basert på en viss tilstand ved å bruke filtreringsflagget - --filter .

På det tidspunktet denne artikkelen skrives, er de for øyeblikket støttede filtrene until og label . Du kan bruke mer enn ett filter ved å bruke flere - --filter .

For å fjerne alle bilder som er opprettet for mer enn 12 timer siden, vil du for eksempel kjøre:

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

Fjerne Docker Volumes

Fjern ett eller flere bind

For å fjerne ett eller flere Docker-bind må du bruke kommandoen for docker volume ls å finne IDen til volumene du vil fjerne.

docker volume ls

Utgangen skal se slik ut:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Når du har funnet docker volume rm på volumene du vil fjerne, kan du sende dem til docker volume rm kommandoen. For å fjerne det første volumet som er oppført i utgangen over, kjører du for eksempel:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

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

Fjern alle ubrukte volumer

For å fjerne alle ubrukte volumer, bruk kommandoen docker image prune :

docker volume prune

Du blir bedt om å fortsette, bruk flagg -f eller - --force å omgå ledeteksten.

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

Fjerne Docker-nettverk

Fjern ett eller flere nettverk

For å fjerne ett eller flere Docker-nettverk bruker du kommandoen docker network ls å finne IDen til nettverkene du vil fjerne.

docker network ls

Utgangen skal se slik ut:

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 funnet nettverkene du vil fjerne, passerer du NETWORK ID til docker network rm kommandoen. For eksempel for å fjerne nettverket med navnet my-bridge-network :

docker network rm c520032c3d31

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

Fjern alt ubrukt nettverk

Bruk kommandoen docker network prune å fjerne alle ubrukte nettverk.

docker network prune

Du blir bedt om å fortsette, bruk flagg -f eller - --force å omgå ledeteksten.

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

Fjern nettverk ved hjelp av filtre

Med kommandoen docker network prune kan du fjerne nettverk basert på tilstand ved hjelp av --filter .

På det tidspunktet denne artikkelen skrives, er de for øyeblikket støttede filtrene until og label . Du kan bruke mer enn ett filter ved å bruke flere - --filter .

For å fjerne alle nettverk som er opprettet for mer enn 12 timer siden, kjører du for eksempel:

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

Konklusjon

I denne guiden har vi vist deg noen av de vanlige kommandoene for å fjerne Docker-containere, bilder, volumer og nettverk.

Du bør også sjekke den offisielle Docker-dokumentasjonen.

Docker