Android

Sådan fjernes dockercontainere, billeder, diskenheder og netværk

Provisioning for Sailing an Ocean, [An Exact Sailboat Provisioning List] Patrick ChildressSailing#20

Provisioning for Sailing an Ocean, [An Exact Sailboat Provisioning List] Patrick ChildressSailing#20

Indholdsfortegnelse:

Anonim

Docker giver dig mulighed for hurtigt at bygge, teste og distribuere applikationer som bærbare, selvforsynende containere, der kan køre praktisk talt overalt.

Docker fjerner ikke ubrugte objekter som containere, billeder, volumener og netværk, medmindre du eksplicit fortæller det at gøre det. Når du arbejder med Docker, kan du nemt samle et stort antal ubrugte objekter, der forbruger betydelig diskplads og rodet output produceret af Docker-kommandoerne.

Denne guide fungerer som et "snyderi" til at hjælpe Docker-brugere med at holde deres system organiseret og til at frigøre diskplads ved at fjerne ubrugte Docker-containere, billeder, volumener og netværk.

Fjernelse af alle ubrugte objekter

Kommandoen docker system prune fjerner alle stoppede containere, alle dinglende billeder og alle ubrugte netværk:

docker system prune

Du bliver bedt om at fortsætte, brug flag -f eller - --force flag til at omgå 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

Fjernelse af Docker-containere

Docker-containere fjernes ikke automatisk, når du stopper dem, medmindre du starter containeren ved hjælp af --rm flag.

Fjern en eller flere containere

For at fjerne et eller flere Docker-billeder skal du bruge kommandoen docker container rm efterfulgt af ID for de containere, du vil fjerne.

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

docker container ls -a

Outputet skal se sådan ud:

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 kender CONTAINER ID for de containere, du vil slette, skal du videregive den til kommandoen docker container rm . For eksempel at fjerne de første to containere, der er anført i output ovenfor, kører:

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 udfører fjernelseskommandoen, kan du få en liste over alle containere, der ikke er kørt (stoppet), og som fjernes ved hjælp af følgende kommando:

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

For at fjerne alle stoppede containere skal du bruge kommandoen docker container prune :

docker container prune

Du bliver bedt om at fortsætte, brug flag -f eller - --force flag til at omgå prompten.

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

Fjern containere ved hjælp af filtre

Kommandoen til docker container prune --filter giver dig mulighed for at fjerne containere baseret på tilstand ved hjælp af --filter .

På det tidspunkt, hvor denne artikel skrives, er de aktuelt understøttede filtre until og label . Du kan bruge mere end et filter ved hjælp af --filter flag.

For eksempel at fjerne alle billeder, der er oprettet for mere end 12 timer siden, skal du køre:

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

Stop og fjern alle containere

Du kan få en liste over alle Docker-containere på dit system ved hjælp af kommandoen docker container ls -aq .

For at stoppe alle kørende containere skal du bruge kommandoen docker container stop efterfulgt af en liste over alle containernes ID'er.

docker container stop $(docker container ls -aq)

Når alle containere er stoppet, kan du fjerne dem ved hjælp af kommandoen docker container rm efterfulgt af containernes ID-liste.

docker container rm $(docker container ls -aq)

Fjernelse af Docker-billeder

Fjern et eller flere billeder

For at fjerne et eller flere Docker-billeder skal du bruge kommandoen docker images ls til at finde ID på de billeder, du vil fjerne.

docker image ls

Outputet skal se sådan ud:

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 fundet de billeder, du vil fjerne, skal du videregive deres IMAGE ID til kommandoen docker image rm . For eksempel at fjerne de første to billeder, der er anført i output ovenfor, kører:

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 billeder

Docker leverer en docker image prune kommando, der kan bruges til at fjerne dinglende og ubrugte billeder.

Et dinglende billede er et billede, der ikke er mærket og ikke bruges af nogen beholder. Sådan fjernes dinglende billedtype:

docker image prune

Du bliver bedt om at fortsætte, brug flag -f eller - --force flag til at omgå prompten.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Når du fjerner dinglende billeder, fjernes de også, hvis billederne bygger af dig ikke.

Fjern alle ubrugte billeder

For at fjerne alle billeder, der ikke henvises til af en eksisterende beholder, ikke kun de dinglende, skal du bruge prune med -a flag:

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 billeder ved hjælp af filtre

Med kommandoen til docker image prune af docker image prune kan du også fjerne billeder baseret på en bestemt betingelse ved hjælp af --filter .

På det tidspunkt, hvor denne artikel skrives, er de aktuelt understøttede filtre until og label . Du kan bruge mere end et filter ved hjælp af --filter flag.

For eksempel at fjerne alle billeder, der er oprettet for mere end 12 timer siden, kører du:

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

Fjernelse af Docker-mængder

Fjern en eller flere bind

For at fjerne en eller flere Docker-bindinger skal du bruge kommandoen docker volume ls til at finde ID på de volumener, du vil fjerne.

docker volume ls

Outputet skal se sådan ud:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Når du har fundet VOLUME NAME af de diskenheder, du vil fjerne, skal du videresende dem til kommandoen docker volume rm . For eksempel for at fjerne den første lydstyrke, der er anført i output ovenfor, skal du køre:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

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

Fjern alle ubrugte mængder

For at fjerne alle ubrugte mængder skal du bruge kommandoen til docker image prune af docker image prune :

docker volume prune

Du bliver bedt om at fortsætte, brug flag -f eller - --force flag til at omgå prompten.

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

Fjernelse af Docker-netværk

Fjern et eller flere netværk

For at fjerne et eller flere Docker-netværk skal du bruge kommandoen docker network ls til at finde ID'et for de netværk, du vil fjerne.

docker network ls

Outputet skal se sådan ud:

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 fundet de netværk, du vil fjerne, skal du videregive deres NETWORK ID til docker network rm kommando. For eksempel at fjerne netværket med navnet my-bridge-network :

docker network rm c520032c3d31

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

Fjern alt ubrugt netværk

Brug kommandoen docker network prune til at fjerne alle ubrugte netværk.

docker network prune

Du bliver bedt om at fortsætte, brug flag -f eller - --force flag til at omgå prompten.

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

Fjern netværk ved hjælp af filtre

Med kommandoen docker network prune kan du fjerne netværk baseret på betingelse ved hjælp af --filter .

På det tidspunkt, hvor denne artikel skrives, er de aktuelt understøttede filtre until og label . Du kan bruge mere end et filter ved hjælp af --filter flag.

For eksempel at fjerne alle netværk, der er oprettet for mere end 12 timer siden, skal du køre:

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

Konklusion

I denne vejledning har vi vist dig nogle af de almindelige kommandoer til fjernelse af Docker-containere, billeder, volumener og netværk.

Du bør også tjekke den officielle Docker-dokumentation.

havnearbejder