Android

Cum să eliminați containerele, imaginile, volumele și rețelele de andocare

Cum se iau containere cu picioare!!!Dachser

Cum se iau containere cu picioare!!!Dachser

Cuprins:

Anonim

Docker vă permite să construiți, să testați și să implementați rapid aplicații ca containere portabile, autosuficiente, care pot rula practic oriunde.

Docker nu elimină obiectele neutilizate, cum ar fi containerele, imaginile, volumele și rețelele decât dacă îi spui în mod explicit acest lucru. Pe măsură ce lucrați cu Docker, puteți acumula cu ușurință un număr mare de obiecte neutilizate care consumă spațiu semnificativ pe disc și înghesuie ieșirea produsă de comenzile Docker.

Acest ghid servește ca o „foaie de înșelăciune” pentru a ajuta utilizatorii Docker să își păstreze sistemul organizat și pentru a elibera spațiu pe disc eliminând containerele, imaginile, volumele și rețelele Docker neutilizate.

Eliminarea tuturor obiectelor neutilizate

Comanda de docker system prune va elimina toate containerele oprite, toate imaginile în pericol și toate rețelele neutilizate:

docker system prune

Vi se va solicita să continuați, utilizați -f sau --force pentru a ocoli promptul.

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

Scoaterea containerelor de andocare

Containerele Docker nu sunt eliminate automat atunci când le opriți decât dacă porniți containerul cu steagul --rm .

Scoateți unul sau mai multe recipiente

Pentru a elimina una sau mai multe imagini Docker, folosiți comanda docker container rm urmată de ID-ul containerelor pe care doriți să le eliminați.

Puteți obține o listă cu toate containerele trecând steagul -a la comanda docker container ls :

docker container ls -a

Produsul ar trebui să arate așa:

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

După ce cunoașteți CONTAINER ID al containerelor pe care doriți să le ștergeți, treceți-l la comanda docker container rm . De exemplu, pentru a elimina primele două containere enumerate în ieșirea de mai sus, executați:

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.

Scoateți toate containerele oprite

Înainte de a efectua comanda de eliminare, puteți obține o listă cu toate containerele care nu funcționează (oprite) care vor fi eliminate cu ajutorul următoarei comenzi:

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

Pentru a elimina toate containerele oprite, folosiți comanda de docker container prune :

docker container prune

Vi se va solicita să continuați, utilizați -f sau --force pentru a ocoli promptul.

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

Scoateți containerele folosind filtre

Comanda de docker container prune vă permite să eliminați containerele în funcție de starea folosind --filter filtrare - --filter .

În momentul scrierii acestui articol, filtrele acceptate în prezent sunt until și label . Puteți utiliza mai multe filtre folosind steaguri cu mai multe --filter .

De exemplu, pentru a elimina toate imaginile create acum mai mult de 12 ore, executați:

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

Opriți și îndepărtați toate containerele

Puteți obține o listă cu toate containerele Docker de pe sistemul dvs. folosind comanda docker container ls -aq .

Pentru a opri toate containerele docker container stop , utilizați comanda de docker container stop urmată de o listă cu toate ID-urile containerelor.

docker container stop $(docker container ls -aq)

Odată ce toate containerele sunt oprite, le puteți elimina folosind comanda docker container rm urmată de lista de identificare a containerelor.

docker container rm $(docker container ls -aq)

Înlăturarea imaginilor Docker

Eliminați una sau mai multe imagini

Pentru a elimina una sau mai multe imagini Docker, utilizați docker images ls comanda pentru a găsi ID-ul imaginilor pe care doriți să le eliminați.

docker image ls

Produsul ar trebui să arate așa:

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

După ce ați localizat imaginile pe care doriți să le eliminați, treceți IMAGE ID la comanda docker image rm . De exemplu, pentru a elimina primele două imagini enumerate în ieșirea de mai sus, executați:

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

Îndepărtați imaginile în vânt

Docker oferă o comandă de docker image prune care poate fi folosită pentru a elimina imaginile îngroșate și neutilizate.

O imagine care se ascunde este o imagine care nu este etichetată și nu este utilizată de niciun container. Pentru a înlătura tipul de imagini bătaie:

docker image prune

Vi se va solicita să continuați, utilizați -f sau --force pentru a ocoli promptul.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Când eliminați imagini care sunt în pericol, dacă imaginile construite de dvs. nu sunt etichetate, ele vor fi eliminate și ele.

Eliminați toate imaginile neutilizate

Pentru a elimina toate imaginile la care nu face referință niciun container existent, nu doar cele periculoase, folosiți comanda prune cu steagul -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

Eliminați imaginile folosind filtre

Cu comanda de docker image prune , puteți elimina, de asemenea, imaginile bazate pe o anumită condiție folosind --filter filtrare - --filter .

În momentul scrierii acestui articol, filtrele acceptate în prezent sunt until și label . Puteți utiliza mai multe filtre folosind steaguri cu mai multe --filter .

De exemplu, pentru a elimina toate imaginile care sunt create cu mai mult de 12 ore în urmă, ar trebui să rulați:

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

Îndepărtarea volumelor Docker

Eliminați unul sau mai multe volume

Pentru a elimina unul sau mai multe volume Docker folosiți comanda docker volume ls pentru a găsi ID-ul volumelor pe care doriți să le eliminați.

docker volume ls

Produsul ar trebui să arate așa:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

După ce ați găsit VOLUME NAME din volumele pe care doriți să le eliminați, treceți-le la comanda docker volume rm . De exemplu, pentru a elimina primul volum listat în rezultatul de mai sus, executați:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

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

Eliminați toate volumele neutilizate

Pentru a elimina toate volumele neutilizate, utilizați comanda de docker image prune :

docker volume prune

Vi se va solicita să continuați, utilizați -f sau --force pentru a ocoli promptul.

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

Eliminarea rețelelor de andocare

Eliminați una sau mai multe rețele

Pentru a elimina una sau mai multe rețele Docker, utilizați comanda de docker network ls pentru a găsi ID-ul rețelelor pe care doriți să le eliminați.

docker network ls

Produsul ar trebui să arate așa:

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

După ce ați localizat rețelele pe care doriți să le eliminați, treceți NETWORK ID la comanda docker network rm . De exemplu, pentru a elimina rețeaua cu numele my-bridge-network run:

docker network rm c520032c3d31

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

Eliminați toate rețelele neutilizate

Utilizați comanda docker network prune pentru a elimina toate rețelele neutilizate.

docker network prune

Vi se va solicita să continuați, utilizați -f sau --force pentru a ocoli promptul.

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

Eliminați rețelele folosind filtre

Cu comanda de docker network prune puteți elimina rețelele bazate pe condiții folosind --filter filtrare - --filter .

În momentul scrierii acestui articol, filtrele acceptate în prezent sunt until și label . Puteți utiliza mai multe filtre folosind steaguri cu mai multe --filter .

De exemplu, pentru a elimina toate rețelele create acum mai mult de 12 ore, executați:

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

Concluzie

În acest ghid, v-am arătat câteva dintre comenzile comune pentru eliminarea containerelor, imaginilor, volumelor și rețelelor Docker.

De asemenea, ar trebui să consultați documentația oficială Docker.

docher