I container consumano spazio di ar­chi­via­zio­ne e risorse del tuo host. Eli­mi­nan­do i container non più necessari, puoi liberare spazio prezioso e mi­glio­ra­re le pre­sta­zio­ni del tuo sistema.

Quando dovresti eliminare i container Docker?

I container Docker sono unità isolate ed ese­gui­bi­li che con­ten­go­no ap­pli­ca­zio­ni e le relative di­pen­den­ze. Ci sono diverse si­tua­zio­ni in cui ti conviene eliminare i container Docker per garantire l’ef­fi­cien­za, la sicurezza e la mo­ni­to­ra­bi­li­tà del tuo ambiente Docker.

Per prima cosa dovresti can­cel­la­re i container dopo l’uso. Una volta che un container ha com­ple­ta­to con successo il compito o processo specifico per cui è stato creato, è con­si­glia­bi­le ri­muo­ver­lo dall’ambiente. In questo modo eviti che i container inattivi con­ti­nui­no a occupare risorse e spazio inu­til­men­te.

È al­tret­tan­to con­si­glia­bi­le eliminare i container non più in uso o che non vengono ag­gior­na­ti da molto tempo. Questo è par­ti­co­lar­men­te im­por­tan­te per ridurre al minimo i rischi di sicurezza, in quanto i container più vecchi po­treb­be­ro uti­liz­za­re versioni obsolete del software e pre­sen­ta­re quindi falle di sicurezza.

Se hai dei dubbi sulla sicurezza di un container o se sospetti che possa essere com­pro­mes­so, eliminalo im­me­dia­ta­men­te. Lo stesso vale per i container che non possono essere avviati a causa di conflitti o altri problemi.

Can­cel­la­re uno o più container Docker

La rimozione di uno o più container Docker specifici è un pro­ce­di­men­to comune per eliminare dall’host i container non più necessari o inattivi.

Primo passaggio: in­di­vi­dua­re gli ID o i nomi dei container

Per prima cosa devi risalire agli ID o ai nomi dei container che desideri eliminare. Puoi uti­liz­za­re il seguente comando per vi­sua­liz­za­re un elenco di tutti i container arrestati e in ese­cu­zio­ne:

docker ps -a
bash

Secondo passaggio: can­cel­la­re i container

Puoi inserire fa­cil­men­te gli ID o i nomi dei container, separati da uno spazio, dopo il comando docker rm:

docker rm container_id_or_name1 container_id_or_name2
bash

Rimuovere un container al termine dell’ese­cu­zio­ne

Per rimuovere au­to­ma­ti­ca­men­te un container Docker al termine della sua ese­cu­zio­ne, imposta il flag --rm al momento dell’avvio del container con il comando docker run. Questo flag fa sì che il container venga eliminato au­to­ma­ti­ca­men­te non appena viene arrestato.

docker run --rm image_name
bash

Can­cel­la­re tutti i container Docker terminati

Puoi anche eliminare i container terminati tutti insieme, fil­tran­do­li in base al loro stato e ri­muo­ven­do­li con il comando rm.

Primo passaggio: elencare i container arrestati

Con l’opzione -f status=exited filtri l’elenco dei container per vi­sua­liz­za­re solo quelli arrestati.

docker ps -a -f status=exited
bash

Secondo passaggio: rimuovere i container terminati

Utilizza il risultato del passaggio pre­ce­den­te per ottenere gli ID dei container terminati e inol­trar­li di­ret­ta­men­te al comando docker rm.

docker rm $(docker ps -a -f status=exited -q)
bash

Eliminare i container con più filtri

Puoi rimuovere i container Docker con più di un filtro uti­liz­zan­do il comando docker ps com­bi­nan­do­lo con le opzioni dei filtri e poi inoltrare l’output al comando docker rm.

Primo passaggio: elencare i container con i filtri

Prima di tutto, inserisci il comando docker ps con i filtri de­si­de­ra­ti per ottenere un elenco dei container che stai cercando. “created” ed “exited” sono due degli stati che puoi indicare. I container con lo stato created sono quelli che sono stati creati ma non ancora eseguiti.

docker ps -a -f status=exited -f status=created
bash

Secondo passaggio: eliminare i container Docker

Ana­lo­ga­men­te all’esempio pre­ce­den­te, inol­tria­mo i risultati al comando docker rm.

docker rm $(docker ps -a -f status=exited -f status=created -q)
bash

Rimuovere il container secondo uno schema

Un’altra opzione efficace per rimuovere se­let­ti­va­men­te i container è quella di trovare tutti i container Docker che cor­ri­spon­do­no a uno schema specifico e suc­ces­si­va­men­te eli­mi­nar­li con awk, xargs e docker rm

Primo passaggio: trovare tutti i container di un de­ter­mi­na­to schema

Se utilizzi il comando docker ps -a in com­bi­na­zio­ne con grep, ottieni tutti i container i cui nomi o tag cor­ri­spon­do­no a uno specifico schema. Ad esempio, puoi vi­sua­liz­za­re i container il cui nome inizia con “test”:

docker ps -a | grep "test-"
bash

Secondo passaggio: rimuovere i container Docker

Il comando awk ti permette di se­le­zio­na­re colonne spe­ci­fi­che dal risultato ottenuto. Nell’esempio suc­ces­si­vo, viene estratta la prima colonna, che contiene gli ID del container. Infine, puoi uti­liz­za­re xargs per inoltrare gli ID al comando docker rmi ed eliminare i container Docker cor­ri­spon­den­ti.

docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmi
bash

Arrestare ed eliminare tutti i container

Puoi arrestare ed eliminare tutti i container attivi e inattivi sul tuo sistema in un’unica ope­ra­zio­ne. Questo risulta utile se vuoi ripulire com­ple­ta­men­te l’ambiente Docker.

Primo passaggio: elencare i container

Utilizza il comando seguente per ve­ri­fi­ca­re l’elenco dei container presenti nel tuo sistema:

docker ps -a
bash

Secondo passaggio: arrestare i container

Dopo aver iden­ti­fi­ca­to tutti i container e aver deciso quali arrestare, inoltra l’elenco a docker stop. Questo comando arresterà tutti i container in ese­cu­zio­ne.

docker stop $(docker ps -a -q)
bash

Terzo passaggio: eliminare i container Docker

Dopo aver arrestato tutti i container in ese­cu­zio­ne, li puoi rimuovere con il comando docker rm:

docker rm $(docker ps -a -q)
bash

A dif­fe­ren­za dei normali container Docker, i volumi dei container Docker sono mec­ca­ni­smi con cui è possibile con­ser­va­re e scambiare dati tra i container e l’host. Nella nostra guida trovi altri tutorial su come eliminare un volume Docker o can­cel­la­re un’immagine Docker.

Vai al menu prin­ci­pa­le