Tutorial di Docker prune: sintassi ed esempi pratici
Docker prune
rimuove gli oggetti inutili come container arrestati, volumi inutilizzati, reti o immagini vecchie. Così ottimizzi l’utilizzo del disco rigido e liberi spazio di archiviazione.
Cos’è Docker prune
?
Docker prune
o system prune
è utile per pulire in modo sistematico le risorse Docker che non servono più, liberando spazio. Quando container, immagini, reti e volumi di Docker restano inutilizzati a lungo, possono occupare inutilmente una considerevole quantità di spazio. Con prune
puoi eliminare rapidamente le risorse, mantenendo il sistema pulito e performante.
In particolare negli ambienti di sviluppo in cui spesso vengono creati e testati nuovi container si può accumulare una grande quantità di oggetti obsoleti. Docker prune
pulisce non solo i container e le immagini, ma anche le reti e i volumi che non servono più. Così è molto più semplice amministrare le risorse Docker e si riduce al minimo il rischio di avere un sistema disordinato e sovraccarico.
Per cosa si usa Docker prune
?
Il comando prune
è adatto per diverse situazioni di lavoro quotidiano con Docker. Di seguito riportiamo quattro scenari tipici di utilizzo.
Ottimizzazione dei processi di lavoro: gli ambienti Docker sono spesso utilizzati in modo intensivo a scopi di sviluppo, test e produzione. Senza una pulizia regolare si accumulano rapidamente risorse inutili. Questo sovraccarico provoca non solo un aumento dello spazio necessario, ma può anche incidere negativamente sulle prestazioni del sistema. Rimuovendo le risorse inutilizzate, Docker prune
consente un utilizzo più efficiente delle risorse di sistema. È importante soprattutto negli ambienti basati sul cloud, dove i costi salgono con l’aumentare del fabbisogno di risorse di archiviazione e di calcolo.
Aumento della sicurezza: le risorse Docker superflue e obsolete possono comportare rischi per la sicurezza. Docker prune
rimuove i container, le immagini, le reti e i volumi inutilizzati, limitando il rischio che componenti obsoleti e potenzialmente non sicuri restino senza protezione. Un ecosistema Docker pulito contribuisce a minimizzare la superficie di attacco e a migliorare le condizioni di sicurezza dell’intera infrastruttura IT.
Incremento delle prestazioni: un ambiente Docker sovraccarico può compromettere il rendimento del sistema, sollecitando inutilmente risorse come la CPU e la memoria. Una pulizia regolare con Docker prune
libera spazio e aumenta l’efficienza dell’amministrazione e dell’esecuzione dei container. Ne conseguono tempi di caricamento notevolmente ridotti, una distribuzione molto più rapida delle applicazioni e, in generale, una migliore capacità di reazione del sistema.
Manutenzione più semplice: eseguendo regolarmente Docker prune
semplifichi considerevolmente la manutenzione del tuo ambiente Docker. Rimuovere le risorse inutilizzate riduce la complessità delle attività di manutenzione per gli sviluppatori e le sviluppatrici. Consente inoltre di mantenere più facilmente una visione d’insieme sui componenti Docker attivi e rilevanti, accelerando la diagnosi e l’eliminazione degli errori. In questo modo, non solo si risparmia tempo per l’amministrazione: i team possono concentrarsi sullo sviluppo e sul miglioramento delle loro applicazioni anziché dover fare i conti con risorse superflue.
Sintassi: come si usa Docker prune
?
Vorresti ripulire le risorse nel tuo ambiente Docker per liberare spazio di archiviazione e semplificare l’amministrazione? In questo caso ti basta eseguire il comando seguente per accedere ai servizi di prune
:
docker system prune
bashPer impostazione predefinita i container arrestati e le immagini, le reti e i volumi non più utilizzati vengono identificati, proponendone poi l’eliminazione. Docker ti chiede di confermare l’operazione. Inserisci y
e premi il tasto Invio. In alternativa puoi usare direttamente anche l’opzione -f
per saltare la conferma ed eseguire subito l’eliminazione:
docker system prune -f
bashConsiglio: prima di usare Docker prune
è utile controllare le risorse Docker correntemente presenti sul sistema. Esegui i comandi seguenti per ottenere una lista di tutti i container, immagini, reti e volumi:
docker ps -a
docker images
docker volume ls
docker network ls
bashOpzioni di Docker prune
Nella tabella che segue trovi un riepilogo delle varie opzioni di docker system prune
.
Opzione | Descrizione |
---|---|
--all, -a
|
Rimuove tutte le risorse Docker inutilizzate. |
--force, -f
|
Esegue la pulizia senza richiedere la conferma dell’utente. |
--volumes
|
Rimuove i volumi inutilizzati. |
--filter, -f
|
Consente di filtrare per criteri le risorse da eliminare. |
--help
|
Visualizza una guida per l’uso del comando. |
Docker prune
: tutorial sull’utilizzo pratico del comando
Docker mette a disposizione vari comandi per eseguire una pulizia mirata di determinati tipi di risorse. Puoi così controllare con precisione quali risorse eliminare.
Docker prune --filter
Puoi applicare filtri per gestire la selezione delle risorse da eliminare, ad esempio container, immagini, reti e volumi. Sono utili negli ambienti di sviluppo dove si creano e dimenticano rapidamente tante risorse temporanee.
La sintassi generale si presenta come segue:
docker <command> prune --filter "filter=<value>"
bashTra la varie opzioni di filtro troviamo:
until
: filtra le risorse in base alla data di creazione.<duration>
può essere un valore numerico comeh
(ore),m
(minuti) os
(secondi).
docker <command> prune --filter "until=<duration>"
bashEsempio: rimuovere tutti i container arrestati che sono più vecchi di 24 ore
docker container prune --filter "until=24h"
bashlabel
: filtra le risorse in base all’etichetta Docker.
docker <command> prune --filter "label=<label>"
bashEsempio: eliminare tutti i volumi inutilizzati che contengono l’etichetta mylabel
docker volume prune --filter "label=mylabel"
bashdangling
: filtra le risorse che non sono più usate da un container
docker <command> prune --filter "dangling=true"
bashEsempio: rimuovere tutte le immagini non più utilizzate (dangling)
docker image prune --filter "dangling=true"
bashOltre ai filtri principali indicati sopra sono disponibili anche opzioni di filtro più specifiche, a seconda del tipo di risorsa:
before
esince
per le immagini: filtra le immagini in base alla data di creazione, prima o dopo un determinato momento.exited
per i container: filtra i container in base al loro stato Exit (ad esempioexited=0
per i container terminati correttamente).
Rimuovere risorse Docker
Primo passaggio: apri un terminale o una riga di comando nel tuo sistema.
Secondo passaggio: esegui Docker prune
per pulire il sistema:
docker {resource} prune
bashSostituisci {resource}
con il tipo di risorse che desideri eliminare. I valori validi sono container
, image
, volume
e network
.
Rimuovere container Docker
Per impostazione predefinita Docker non libera automaticamente i container al termine del loro ciclo di vita. Per mettere a disposizione dei container in esecuzione le risorse bloccate è quindi importante controllare regolarmente i container arrestati e se necessario eliminarli. Per farlo sono previsti due metodi.
docker rm
: il comandodocker rm
è pensato per eliminare manualmente uno o più container Docker. È quindi adatto se sai con precisione quali container devono essere eliminati. Dovrai indicare esplicitamente gli ID o i nomi dei container da rimuovere. Saranno eliminati dal tuo ambiente solo determinati container, senza intaccare gli altri.
Di seguito un esempio per eliminare i container denominati container1
e container2
:
docker rm container1 container2
bashdocker container prune
: il comandodocker container prune
permette invece di eliminare più container arrestati in una volta sola. Questo metodo è particolarmente adatto per liberare spazio in modo rapido ed efficiente, perché elimina tutti i container arrestati per cui non sono in corso processi.
docker container prune
bashVengono elencati tutti i container arrestati. Docker ti chiederà conferma prima di procedere all’eliminazione. È estremamente pratico negli ambienti in cui vengono creati molti container temporanei che successivamente non serviranno più.
Per l’amministrazione e la manutenzione quotidiane del tuo ambiente Docker è consigliabile usare docker container prune
regolarmente per eliminare in automatico i container arrestati. In questo modo, oltre a risparmiare tempo, ti assicuri che risorse inutili non compromettano le prestazioni del sistema. docker rm
, invece, serve a eliminare determinati container in modo mirato e controllato, a prescindere che si tratti di test, sviluppo o altri requisiti specifici.
Rimuovere immagini Docker
Le immagini Docker sono gli elementi costitutivi dei container. Nel corso del tempo possono avere diverse versioni e tag. Quando crei o aggiorni nuove immagini, spesso le immagini vecchie o non più utilizzate vengono mantenute. Queste immagini sospese (“dangling”) occupano spazio di archiviazione sul tuo sistema e possono comprometterne le prestazioni, in particolare se presenti in numero elevato.
Con Docker prune
puoi identificare le immagini non più utilizzate e rimuoverle:
docker image prune [Options]
bashLe opzioni possibili sono ad esempio:
-a
,--all
: questa opzione non solo rimuove le immagini dangling, ma anche quelle non più in uso. Le immagini inutilizzate sono quelle che non hanno più tag, pertanto non è più possibile fare riferimento direttamente a esse con i tag.
docker image prune -a
bash-f
,--force
: per impostazione predefinita Docker richiede una conferma prima di eliminare effettivamente le immagini. Con-f
o--force
puoi saltare questo passaggio di conferma ed eseguire subito la pulizia.
docker image prune -f
bashRimuovere tutte le immagini Docker
Puoi anche eliminare dal tuo sistema le immagini Docker che non servono più con una sola operazione. Per usare efficacemente Docker prune
, per prima cosa apri il terminale o il prompt e inserisci il comando seguente:
docker image prune -a --force
bashPrima di procedere con la pulizia assicurati di aver compreso quali immagini devono essere eliminate. L’opzione -a
può eliminare anche immagini non in uso, ma che potrebbero servire ancora.
Rimuovere volumi Docker
I volumi sono persistenti e salvano dati anche quando il relativo container non è più in esecuzione. Col passare del tempo, questi volumi possono crescere di dimensioni, occupando risorse inutilmente.
docker volume prune
bashQuesto comando cerca tutti i volumi per cui non ci sono più container attivi. Ottieni così una lista con i volumi per cui è proposta l’eliminazione. Prima dell’effettiva cancellazione è richiesta la conferma.
Invece, docker volume rm
è un comando che rimuove singoli volumi Docker in modo mirato. Può essere utile se sai esattamente quale volume eliminare, a prescindere che sia usato da un container o meno. Per rimuovere un determinato volume Docker usa il comando docker volume rm
seguito dal nome o dall’ID del volume:
docker volume rm volume_name
bashAssicurati anche di conoscere il nome preciso o l’ID del volume da eliminare: questo comando cancella i dati in modo permanente e non può essere annullato.
Rimuovere reti Docker
In Docker le reti sono un componente di base attraverso cui i container comunicano fra loro, a prescindere che si trovino sullo stesso host o siano distribuiti tra più host. Le reti Docker vengono mantenute anche quando i container sono stati chiusi o rimossi. Col passare del tempo può quindi succedere che si accumulino reti che non sono più in uso, occupando risorse inutilmente. Il comando docker prune network
offre un modo semplice per individuare le reti inutilizzate e rimuoverle.
Il comando ha la forma seguente:
docker network prune [OPTIONS]
bashDocker genera una lista di tutte le reti che non sono più usate dai container attivi o che sono prive di riferimenti. Dopo aver richiesto la conferma, procede all’effettiva eliminazione delle reti.
Docker prune
: le migliori prassi
- Pulizia automatizzata: usa strumenti o script automatizzati per eliminare le immagini, i container e i volumi Docker che non servono più. Così l’ambiente resta ordinato e le prestazioni vengono ottimizzate.
- Patch di sicurezza e aggiornamenti: controlla regolarmente se ci sono patch di sicurezza e aggiornamenti per i motori Docker, i sistemi operativi host e tutte le immagini Docker. Così ridurrai al minimo le potenziali falle di sicurezza.
- Monitoraggio e registrazione: usa strumenti di monitoraggio e registrazione per tenere sotto controllo le prestazioni dei container, riconoscere gli eventi imprevisti e favorire la proattività nella manutenzione.
- Backup esterno: implementa routine per eseguire backup esterni dei dati importanti dei container Docker, ad esempio salvando regolarmente i contenuti del database o i file di configurazione.
- Controllo manuale prima dell’eliminazione: controlla attentamente di non aver più bisogno delle risorse prima di eliminarle. Così minimizzi il rischio di perdite accidentali di dati o di interruzioni dei processi in corso.
Se hai appena iniziato a usare Docker, ti consigliamo il nostro tutorial su Docker.
- vCPU estremamente vantaggiose e potenti core dedicati
- Massima flessibilità senza periodo contrattuale minimo
- Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7