Eliminare i container Docker e risparmiare risorse preziose

I container consumano spazio di archiviazione e risorse del tuo host. Eliminando i container non più necessari, puoi liberare spazio prezioso e migliorare le prestazioni del tuo sistema.

Quando dovresti eliminare i container Docker?

I container Docker sono unità isolate ed eseguibili che contengono applicazioni e le relative dipendenze. Ci sono diverse situazioni in cui ti conviene eliminare i container Docker per garantire l’efficienza, la sicurezza e la monitorabilità del tuo ambiente Docker.

Per prima cosa dovresti cancellare i container dopo l’uso. Una volta che un container ha completato con successo il compito o processo specifico per cui è stato creato, è consigliabile rimuoverlo dall’ambiente. In questo modo eviti che i container inattivi continuino a occupare risorse e spazio inutilmente.

È altrettanto consigliabile eliminare i container non più in uso o che non vengono aggiornati da molto tempo. Questo è particolarmente importante per ridurre al minimo i rischi di sicurezza, in quanto i container più vecchi potrebbero utilizzare versioni obsolete del software e presentare quindi falle di sicurezza.

Se hai dei dubbi sulla sicurezza di un container o se sospetti che possa essere compromesso, eliminalo immediatamente. Lo stesso vale per i container che non possono essere avviati a causa di conflitti o altri problemi.

Cancellare uno o più container Docker

La rimozione di uno o più container Docker specifici è un procedimento comune per eliminare dall’host i container non più necessari o inattivi.

Primo passaggio: individuare gli ID o i nomi dei container

Per prima cosa devi risalire agli ID o ai nomi dei container che desideri eliminare. Puoi utilizzare il seguente comando per visualizzare un elenco di tutti i container arrestati e in esecuzione:

docker ps -a
bash

Secondo passaggio: cancellare i container

Puoi inserire facilmente 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’esecuzione

Per rimuovere automaticamente un container Docker al termine della sua esecuzione, imposta il flag --rm al momento dell’avvio del container con il comando docker run. Questo flag fa sì che il container venga eliminato automaticamente non appena viene arrestato.

docker run --rm image_name
bash

Cancellare tutti i container Docker terminati

Puoi anche eliminare i container terminati tutti insieme, filtrandoli in base al loro stato e rimuovendoli con il comando rm.

Primo passaggio: elencare i container arrestati

Con l’opzione -f status=exited filtri l’elenco dei container per visualizzare solo quelli arrestati.

docker ps -a -f status=exited
bash

Secondo passaggio: rimuovere i container terminati

Utilizza il risultato del passaggio precedente per ottenere gli ID dei container terminati e inoltrarli direttamente 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 utilizzando il comando docker ps combinandolo 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 desiderati 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

Analogamente all’esempio precedente, inoltriamo 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 selettivamente i container è quella di trovare tutti i container Docker che corrispondono a uno schema specifico e successivamente eliminarli con awk, xargs e docker rm

Primo passaggio: trovare tutti i container di un determinato schema

Se utilizzi il comando docker ps -a in combinazione con grep, ottieni tutti i container i cui nomi o tag corrispondono a uno specifico schema. Ad esempio, puoi visualizzare 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 selezionare colonne specifiche dal risultato ottenuto. Nell’esempio successivo, viene estratta la prima colonna, che contiene gli ID del container. Infine, puoi utilizzare xargs per inoltrare gli ID al comando docker rmi ed eliminare i container Docker corrispondenti.

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 operazione. Questo risulta utile se vuoi ripulire completamente l’ambiente Docker.

Primo passaggio: elencare i container

Utilizza il comando seguente per verificare l’elenco dei container presenti nel tuo sistema:

docker ps -a
bash

Secondo passaggio: arrestare i container

Dopo aver identificato tutti i container e aver deciso quali arrestare, inoltra l’elenco a docker stop. Questo comando arresterà tutti i container in esecuzione.

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

Terzo passaggio: eliminare i container Docker

Dopo aver arrestato tutti i container in esecuzione, li puoi rimuovere con il comando docker rm:

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

A differenza dei normali container Docker, i volumi dei container Docker sono meccanismi con cui è possibile conservare e scambiare dati tra i container e l’host. Nella nostra guida trovi altri tutorial su come eliminare un volume Docker o cancellare un’immagine Docker.

Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.