Guida Completa: Come Cancellare Immagini Docker, Tranne Una, Forzatamente
Docker è uno strumento essenziale per lo sviluppo software, poiché permette
agli sviluppatori di configurare ambienti di lavoro ad-hoc per eseguire il
codice sviluppato. Nel corso dello sviluppo quotidiano, spesso si creano molte
build
con Docker, portando alla generazione di numerose immagini.
Le immagini Docker rappresentano gli ambienti sui quali eseguire il proprio
codice; tuttavia, quando le immagini sono molto pesanti in termini di
occupazione di spazio, e se lo sviluppatore esegue molte build
,
l'occupazione del disco sul proprio PC può diventare un problema.Per
ovviare a questo problema, è opportuno monitorare le immagini create e
mantenere solamente quelle di cui abbiamo bisogno, cancellando le altre.
In questo articolo vedremo come eliminare tutte le immagini Docker, eccetto una, in modo forzato. Una guida passo-passo per mantenere il tuo ambiente Docker pulito ed efficiente, con comandi dettagliati e script di esempio.
Cancellare tutte le immagini in Docker, eccetto una
Per cancellare tutte le immagini su Docker, eccetto una, possiamo seguire questi passi:
- Identificare l'
ID
dell'immagine che vogliamo mantenere - Elencare tutte le immagini escludendo dall'elenco l'immagine da mantenere
- Rimuovere tutte le altre immagini
Passo 1: identificare l'ID
dell'immagine da mantenere
Per prima cosa, mostriamo l'elenco di tutte le immagini presenti sul pc sul quale stiamo eseguendo il comando. Possiamo visualizzare tutte le immagini con il comando:
docker images
Questo comando fornisce un output come segue:
REPOSITORY TAG IMAGE ID CREATED SIZE
my-image latest abcdef123456 2 weeks ago 500MB
other-image latest 123456abcdef 3 weeks ago 600MB
Dall'output prodotto, all'interno della colonna IMAGE ID
possiamo ricercare
l'identificativo dell'immagine che non vogliamo eliminare.
Passo 2: Elencare tutte le immagini eccetto quella da mantenere
Per elencare tutte le immagini eccetto quella da mantenere, useremo il seguente comando:
docker images --quiet | grep -v abcdef123456
sostituisci abcdef123456
con l'id
della immagine che vuoi cancellare.
Questo comando restituisce un elenco di identificativi, escludendo l'ID
indicato.
Passo 3: Rimuoviamo tutte le immagini, tranne una
Possiamo usare l'output del precedente comando per rimuovere tutte le altre immagini:
docker rmi $(docker images --quiet | grep -v abcdef123456)
Questo comando rimuove tutte le immagini eccetto quella a cui appartiene l'identificativo indicato.
Gestione mediante script sh
Possiamo creare uno script sh
, all'interno del quale inseriamo il comando:
#!/bin/bash
# Replace this with the IMAGE ID of the image you want to keep
IMAGE_TO_KEEP="abcdef123456"
# List all image IDs except the one to keep and remove them
docker rmi $(docker images --quiet | grep -v $IMAGE_TO_KEEP)
Salviamo lo script in un file delete_docker_images.sh
, diamo i permessi di
esecuzione, e eseguiamo:
chmod +x delete_docker_images.sh
./delete_docker_images.sh
Questo script cancellerà tutte le immagini eccetto l'immagine a cui appartiene
l'ID
memorizzato in IMAGE_TO_KEEP
.
Forzare la cancellazione
Tutti i comandi visti in precedenza possono essere invocati forzando la
cancellazione delle immagini docker. Può capitare alle volte che alcune
immagini non siano eliminabili con i comandi visti in precedenza, ma se si è
sicuri di volerle cancellare, possiamo utilizzare l'opzione --force
, come
segue:
docker rmi --force $(docker images --quiet | grep -v abcdef123456)
Nel comando l'opzione --force
indica a docker di cancellare brutalmente le
immagini senza curarsi di eventuali conflitti o problemi. In questo caso siamo
noi che prendiamo il comando e decidiamo cosa fare in modo forzato.
Conclusioni
In questo articolo abbiamo visto come rimuovere tutte le immagini docker sul proprio pc eccetto una. Questa operazione è molto utile per il lavoro di sviluppo quotidiano su docker.