Vai al contenuto principale

Docker Prune: guida completa con esempi pratici

Rimuovi in sicurezza container, immagini, volumi e network inutilizzati con un unico comando shell. Tieni in ordine il sistema e recupera spazio su disco eliminando le risorse Docker non utilizzate.
Aggiornato 29 set 2026  · 11 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Se lavori ogni giorno con Docker, sai quanto velocemente può consumare spazio su disco.  

Col tempo, il sistema accumula immagini, container, volumi e network inutilizzati. Per lo più restano lì inattivi, occupando prezioso spazio di archiviazione e potenzialmente impedendoti di lavorare al progetto attuale. Per fortuna, Docker offre dei comandi di pulizia integrati che rimuovono facilmente le risorse non necessarie.  

Questi comandi di pulizia fanno parte della famiglia docker prune e oggi li vedrai nel dettaglio. Diventeranno presto la tua soluzione di riferimento per liberare spazio su disco.  

Iniziamo con una breve panoramica prima di passare agli esempi pratici.  

Sei alle prime armi con Docker? Dai un'occhiata alla nostra guida su imparare Docker da zero per i data professional per metterti subito in pari.  

Che cos'è Docker Prune?  

Il termine "Docker Prune" in genere si riferisce a una serie di comandi pensati per aiutarti a rimuovere le risorse Docker inutilizzate e non necessarie.  

Col tempo, soprattutto se lavori su più progetti, creerai innumerevoli immagini, eseguirai container e imposterai volumi e network. Tutto questo si accumula sul sistema, occupando una quantità significativa di spazio su disco. Lo scopo di docker prune è ripulire questo disordine e recuperare spazio.  

Detto questo, c'è più in docker prune di quanto sembri a prima vista.  

Non è solo un singolo comando da eseguire. Beh, potresti farlo, ma a volte ti serve un controllo granulare su ciò che viene rimosso. È qui che entra in gioco questo articolo. Ti mostrerà come gestire il pruning in modo efficace, assicurandoti di eliminare solo ciò che intendi e come fare pratica in un ambiente sicuro per evitare di rimuovere per errore dati importanti.  

Vale anche la pena notare che i comandi di prune rimuovono solo le risorse non attivamente in uso. Immagini, volumi e network referenziati da container in esecuzione non verranno eliminati. In altre parole, il pruning non interferisce con i carichi di lavoro attivi.  

Nella prossima sezione ti guideremo tra i diversi tipi di comandi di pruning e spiegheremo come inserirli nel tuo flusso di lavoro.  

Vuoi aggiungere Docker al tuo CV o al tuo portfolio? Queste 10 idee per progetti Docker ti porteranno pronto per il lavoro.

Tutti i comandi Docker Prune con esempi pratici  

Docker fornisce diversi comandi prune che ti permettono di ripulire le risorse inutilizzate singolarmente o tutte insieme. In questa sezione li conoscerai—sia in teoria che con esempi pratici.  

docker system prune  

Questo è il comando più completo per recuperare spazio su disco. Rimuove in un'unica operazione tutti i container, i network, le immagini e la cache di build inutilizzati.  

Se cerchi un modo rapido per liberare spazio su disco con un solo comando, questo è quello da usare.  

Puoi passare opzioni al comando docker system prune:  

  • -a o --all rimuove tutte le immagini inutilizzate invece delle sole "dangling" (immagini non taggate o non referenziate da alcun container).  
  • --filter consente di specificare valori di filtro.  
  • -f o --force salta la richiesta di conferma.  
  • --volumes effettua il prune anche dei volumi anonimi insieme a container, network, immagini e cache di build.  

Per impostazione predefinita, docker system prune chiede conferma perché è un'operazione potenzialmente distruttiva:  

Prompt di conferma di docker system prune

Immagine 1 - Prompt di conferma di docker system prune

Per bypassare il prompt e rimuovere con un solo comando tutte le immagini, i container, i network e i volumi inutilizzati, esegui:  

docker system prune -a -f --volumes

Rimuovi tutto con un singolo comando docker system prune

Immagine 2 - Rimuovi tutto con un singolo comando docker system prune

Ma se ti serve un controllo più granulare? Vediamolo subito.

docker container prune

In poche parole, questo comando rimuove tutti i container arrestati.

I container arrestati restano sul sistema finché non vengono rimossi manualmente. Possono occupare spazio su disco ed essere difficili da individuare a meno che tu non usi uno strumento come la Dashboard di Docker Desktop.

Come docker system prune, anche questo comando supporta opzioni:

  • --filter ti permette di specificare coppie chiave-valore per controllare quali container rimuovere.
  • -f o --force salta la richiesta di conferma.

Ecco un elenco di container non in esecuzione:

Elenco di container non in esecuzione

Immagine 3 - Elenco di container non in esecuzione

Per rimuovere code-server (e qualsiasi altro container arrestato), esegui:

docker container prune -f

Non verrà richiesto conferma e, in pochi secondi, vedrai un output simile a questo:

Messaggio di output del pruning dei container

Immagine 4 - Messaggio di output del pruning dei container

E proprio così, non ci sono più container arrestati:

Elenco di container non in esecuzione (2)

Immagine 5 - Elenco di container non in esecuzione (2)

Ora occupiamoci delle immagini inutilizzate.

docker image prune

Analogamente al comando precedente, docker image prune rimuove le immagini inutilizzate.

Per impostazione predefinita, rimuove solo le immagini dangling—immagini non taggate e non associate a un container. Puoi usare un flag opzionale per rimuovere tutte le immagini inutilizzate, non solo quelle dangling.

Ecco l'elenco delle opzioni disponibili

  • -a o --all rimuove tutte le immagini inutilizzate invece delle sole dangling.
  • --filter ti permette di specificare coppie chiave-valore per controllare quali immagini rimuovere.
  • -f o --force salta la richiesta di conferma.

Ora vediamolo in azione!

Ecco l'elenco delle immagini attualmente presenti sul sistema:

Elenco delle immagini Docker

Immagine 6 - Elenco delle immagini Docker

Per rimuoverle tutte con un solo comando, esegui:

docker image prune -a -f

Vedrai un output simile a questo nel terminale:

Messaggio di output del pruning delle immagini

Immagine 7 - Messaggio di output del pruning delle immagini

Dopodiché, non resterà alcuna immagine in Docker Desktop:

Elenco delle immagini Docker (2)

Immagine 8 - Elenco delle immagini Docker (2)

Poi, occupiamoci dei volumi inutilizzati.

docker volume prune

Come suggerisce il nome, il comando docker volume prune rimuove tutti i volumi locali inutilizzati. In altre parole, elimina i volumi che non sono referenziati da alcun container.

Per impostazione predefinita, il comando rimuove solo i volumi anonimi - volumi senza nome creati da Docker all'avvio di un container. Per rimuovere i volumi nominati esplicitamente, devi passare un'opzione aggiuntiva.

Queste sono le opzioni disponibili:

  • -a o --all rimuove tutti i volumi inutilizzati invece dei soli anonimi.
  • --filter ti permette di specificare coppie chiave-valore per controllare quali volumi rimuovere.
  • -f o --force salta la richiesta di conferma.

Sul nostro sistema abbiamo un singolo volume creato dall'utente da un file docker-compose.yml:

Elenco dei volumi Docker

Immagine 9 - Elenco dei volumi Docker

Il seguente comando rimuove tutti i volumi locali:

docker volume prune -a -f

Dopo l'esecuzione, vedrai un output simile a questo:

Messaggio di output del pruning dei volumi

Immagine 10 - Messaggio di output del pruning dei volumi

Ora non resta alcun volume:

Elenco dei volumi Docker (2)

Immagine 11 - Elenco dei volumi Docker (2)

Infine, vediamo come eliminare i network inutilizzati.

docker network prune

Quando i container Docker comunicano tra loro, spesso usano network definiti dall'utente. Tuttavia, questi network di solito restano sul sistema una volta rimossi quei container.

Il comando docker network prune rimuove i network che non sono più in uso da alcun container.

Come gli altri comandi di prune, include alcune opzioni:

  • --filter ti permette di specificare coppie chiave-valore per controllare quali network rimuovere.
  • -f o --force salta la richiesta di conferma.

A differenza di immagini, container o volumi, non puoi ispezionare visivamente i network tramite Docker Desktop, quindi dovrai lavorare da riga di comando. Ecco l'elenco dei network disponibili:

Elenco dei network Docker

Immagine 12 - Elenco dei network Docker

Per rimuovere tutti i network non associati all'installazione predefinita di Docker, esegui:

docker network prune -a -f

Dopo l'esecuzione del comando, vedrai un output come questo:

Messaggio di output del pruning dei network

Immagine 13 - Messaggio di output del pruning dei network

Eventuali network associati a container precedentemente in esecuzione ora sono stati rimossi:

Elenco dei network Docker

Immagine 14 - Elenco dei network Docker

Tieni però presente che i tre network rimanenti sono essenziali per il corretto funzionamento di Docker e non possono essere rimossi.

E questo è tutto per l'uso di base dei comandi docker prune! A seguire, tratteremo argomenti avanzati come l'uso sicuro di questi comandi e le best practice per ambienti di produzione e sensibili.

Usare Docker Prune in sicurezza  

I comandi docker prune aiutano a recuperare rapidamente spazio su disco, ma vanno usati con cautela, soprattutto in ambienti di produzione.  

Eliminare per errore container, immagini o volumi importanti può causare perdita di dati e interrompere flussi di lavoro critici. Per evitarlo, è meglio capire cosa verrà rimosso prima di eseguire qualsiasi comando di prune.  

Questa sezione spiega le principali precauzioni da adottare per eseguire in sicurezza docker prune.  

Capire cosa verrà rimosso  

I comandi prune sono progettati per rimuovere solo le risorse non attivamente in uso.  

Ad esempio, docker image prune elimina solo le immagini dangling e docker volume prune rimuove solo i volumi non collegati ad alcun container. Tuttavia, aggiungendo opzioni come -a -f verranno rimossi tutti i volumi o le immagini senza richiesta di conferma.  

Inoltre, in ambienti complessi, le dipendenze possono sfuggire facilmente, quindi un doppio controllo prima del pruning è sempre una buona pratica.  

Prima di eseguire qualsiasi comando prune, dovresti ispezionare il sistema per vedere quali risorse sono attualmente in uso. Ci sono diversi modi per farlo e in questa sezione vedremo i più comuni.  

Usa questo comando per visualizzare tutti i container, inclusi quelli arrestati:  

docker ps -a

Dovresti vedere un output simile a questo:

Elenco di tutti i container Docker

Immagine 15 - Elenco di tutti i container Docker

Allo stesso modo, usa questo comando per elencare tutte le immagini, incluse quelle inutilizzate:  

docker images

L'output sarà strutturato in modo simile al precedente:  

Elenco di tutte le immagini Docker

Immagine 16 - Elenco di tutte le immagini Docker

Per controllare i volumi, esegui questo comando per elencare tutti i volumi:  

docker volume ls

Elenco di tutti i volumi Docker

Immagine 17 - Elenco di tutti i volumi Docker

Esamina con attenzione questi output per assicurarti che nessuna risorsa critica venga eliminata per errore.  

Dry run per sicurezza  

Purtroppo, Docker non ha ancora un'opzione integrata per un dry run dei comandi di prunings, anche se è stata richiesta anni fa.  

Per questo motivo, devi ispezionare manualmente le risorse usando i comandi elencati nella sezione precedente prima di eseguire un comando di prune.  

Se lavori in un ambiente sensibile in cui la persistenza dei dati è fondamentale, dovresti sempre creare un backup prima di eseguire comandi di prune che interessano i volumi.  

Certo, queste sono solo misure precauzionali, ma speriamo di vedere presto implementata un'opzione di dry run.

Best practice per Docker Prune  

Per mantenere il tuo ambiente Docker libero da ingombri inutili, è importante eseguire regolarmente i comandi prune—magari persino automatizzandoli.  

Questa sezione ti guida attraverso le best practice per eseguire i comandi docker prune in ambienti di produzione.  

Usa docker prune regolarmente  

Col tempo, Docker accumula immagini inutilizzate, container arrestati e volumi non necessari—tutti elementi che consumano notevole spazio su disco.  

Eseguire regolarmente i comandi di pruning mantiene pulito l'ambiente e previene un uso eccessivo del disco. Dovresti includerli nel tuo piano di manutenzione.  

Ogni poche settimane è un buon punto di partenza, ma se la tua configurazione prevede creazione e rimozione frequenti di container, valuta una cadenza più ravvicinata.  

Fai attenzione in produzione  

Qualsiasi lavoro in produzione richiede attenzione extra, e il pruning di Docker non fa eccezione.  

Un attimo di disattenzione può portare a downtime o perdita di dati, e non vuoi esserne responsabile. Prima di eseguire comandi docker prune in produzione, ispeziona sempre le risorse di sistema usando docker ps -a, docker images e docker volume ls, come spiegato nella sezione precedente.  

Inoltre, è una buona idea usare comandi di pruning specifici invece del completo docker system prune, dato che può essere più semplice recuperare da eliminazioni indesiderate.  

Automatizza docker prune  

Un'altra buona pratica è ottimizzare le attività di pulizia automatizzando i comandi docker prune con attività pianificate.  

Su Linux puoi configurare un cron job per eseguire i comandi a intervalli regolari, mentre su Windows puoi usare l'Utilità di pianificazione per un'automazione simile. Questo aiuta a mantenere il sistema in ordine senza interventi manuali. Tuttavia, in produzione, assicurati che il pruning automatico non interferisca con carichi di lavoro critici.  

Ad esempio, questo cron job su Linux esegue un comando di pruning completo ogni domenica a mezzanotte:

0 0 * * 0 docker system prune -a -f

Risoluzione dei problemi con Docker Prune  

I comandi docker prune sono una soluzione di riferimento per recuperare spazio su disco, ma potrebbero non bastare sempre a garantire spazio sufficiente per scaricare nuove immagini o eseguire nuovi container.  

Inoltre, potresti rimuovere per errore risorse importanti, quindi è fondamentale parlare di strategie di recupero.  

Entrambi gli argomenti saranno trattati in questa sezione.  

Problemi di spazio su disco  

Le immagini Docker possono essere grandi—di recente ne avevamo una oltre i 13 GB—e siamo sicuri che ce ne siano di ancora più grandi. Quindi, anche dopo aver eseguito docker prune, potresti scoprire che il sistema è ancora a corto di spazio su disco.  

Per vedere esattamente quanto spazio è utilizzato da immagini, container e volumi, esegui questo comando:  

docker system df

Spazio utilizzato da Docker

Immagine 18 - Spazio utilizzato da Docker

Quando recuperi spazio su disco con i comandi docker prune, aggiungi il flag -a per rimuovere tutte le immagini, i volumi o i container inutilizzati—non solo quelli dangling o anonimi. Ovviamente, tieni a mente i potenziali svantaggi di questo approccio.  

Se il problema di spazio persiste, l'unica opzione è aumentare lo spazio disco disponibile.  

Recupero da rimozioni accidentali

Il recupero è più facile a dirsi che a farsi—ecco perché consigliamo di capire cosa verrà rimosso dal pruning prima di eseguire il comando vero e proprio.  

Detto ciò, se ti trovi nella situazione di aver potato per errore container, immagini o volumi importanti, inizia controllando i log per identificare cosa è stato rimosso.  

Su macOS, puoi farlo eseguendo i seguenti due comandi (opzioni per Windows e Linux):  

pred='process matches ".*(ocker|vpnkit).*" || (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")'
/usr/bin/log stream --style syslog --level=debug --color=always --predicate "$pred"

/usr/bin/log show --debug --info --style syslog --last 30m --predicate "$pred" >/tmp/logs.txt

Eseguendo questi comandi salverai gli ultimi 30 minuti di log relativi a Docker in /tmp/logs.txt. Dovresti ispezionare questi log per determinare quali container o immagini sono stati eliminati.  

Per le immagini eliminate, probabilmente puoi riscaricarle da un registry come Docker Hub. Un comando come questo dovrebbe bastare:  

docker pull <image_name>

E per i container eliminati, puoi sempre ricrearli se erano basati su immagini persistenti:  

docker run --name <container_name> <image_name>

In alternativa, puoi ripristinare dai backup se disponibili, che possono essere usati per recuperare sia i dati dei volumi che dei container. In futuro, valuta l'uso di strumenti per snapshot dei volumi per prevenire la perdita di dati.  

Tuttavia, la strategia migliore è ispezionare le risorse che verranno eliminate prima di eseguire un comando di pruning e procedere solo se sei assolutamente certo che non impatterà sul tuo flusso di lavoro.  

Riepilogo su Docker Prune  

In conclusione, la famiglia di comandi docker prune è un modo potente per recuperare spazio su disco, ma comporta il rischio di eliminare per errore risorse necessarie, con conseguente perdita di dati. Questo rischio è ancora maggiore quando si usano i flag opzionali -a -f, che rimuovono tutto in modo forzato.  

Ciononostante, il pruning resta un metodo di riferimento per mantenere il sistema pulito e organizzato.  

Devi solo fare attenzione, soprattutto in ambienti di produzione. Usa comandi come docker ps -a, docker images e docker volume ls prima del pruning per elencare tutti i container, le immagini e i volumi. Esegui il comando di pruning solo dopo essere sicuro di poter eliminare le risorse elencate (supponendo che non siano usate da un container in esecuzione).  

Se vuoi saperne di più su Docker, containerizzazione e orchestrazione dei container, dai un'occhiata a questi corsi su DataCamp:

FAQs

Docker prune è sicuro?

In generale sì, ma va usato con cautela. Rimuove solo le risorse non in uso, ma eseguirlo senza controllare può portare a eliminazioni accidentali, soprattutto in produzione. Flag aggiuntivi come -a -f rimuoveranno forzatamente tutte le risorse inutilizzate. 

Qual è la differenza tra docker prune e docker rm?

docker prune rimuove tutte le risorse inutilizzate di un tipo specifico, mentre docker rm viene usato per eliminare manualmente container o immagini specifici.

Docker system prune rimuove tutto?

No, docker system prune rimuove container, network, immagini e cache di build inutilizzati, ma non elimina i volumi nominati a meno che non si specifichi il flag --volumes dopo il comando. 

Che cos'è una dangling image in Docker?

Una "dangling image" è un'immagine non taggata o non referenziata da alcun container. Di solito sono immagini intermedie residue dai processi di build e possono essere rimosse in sicurezza con il comando docker image prune. 


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Senior Data Scientist con base in Croazia. Top Tech Writer con oltre 700 articoli pubblicati, per più di 10 milioni di visualizzazioni. Autore del libro Machine Learning Automation with TPOT.
Argomenti
Kubernetes
Cloud

Scopri di più su Docker con questi corsi!

Corso

Introduzione a Docker

4 ore
52.3K
Scopri cos'è Docker e perché è importante per chi lavora con i dati. Scopri i container Docker, le immagini e molto altro ancora.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro