Le immagini Docker possono essere molto grandi e, se lavori spesso con i container, potrebbe occupare molto spazio di archiviazione. Discuteremo come ripulire le immagini scaricate ed eliminare i vecchi file che non ti servono.
Immagini Docker e contenitori Docker
Le immagini Docker gestiscono i propri dati in modo diverso rispetto ai contenitori. Le immagini sono file di sola lettura creati da Dockerfiles e inviati a Docker Hub. Ogni volta che scarichi una nuova versione, Docker deve scaricare i file per quella nuova versione. Le vecchie versioni sono ancora archiviate sull'unità locale.
I contenitori sono costituiti da immagini e di solito hanno il proprio filesystem e volumi allegati. Quando arresti il contenitore, tutti i dati non archiviati su un volume verranno eliminati. Quindi, per ripulire i dati utilizzati dai contenitori, devi semplicemente fermarli ed eliminare i loro volumi.
Per ripulire le immagini, Docker fornisce alcuni comandi per eseguire la Garbage Collection.
Immagini di potatura
Ti ritroverai inevitabilmente con immagini che non sono in uso, siano esse vecchie versioni di immagini o immagini da contenitori che non sono attivamente in esecuzione. In ogni caso, l'eliminazione di un'immagine di solito non presenta problemi:se ne hai bisogno di nuovo, Docker può semplicemente recuperarla dal repository remoto.
Per visualizzare tutte le immagini memorizzate sul tuo sistema, puoi utilizzare il seguente comando:
docker image ls
Nonostante sembri che tutte queste versioni occupino molto spazio in questo output, le diverse versioni vengono archiviate in modo incrementale, quindi solo le modifiche della nuova versione vengono effettivamente archiviate su disco.
Puoi rimuovere un'immagine manualmente in base al suo ID immagine:
docker image rm 3a8d8f76e7f8f
Tuttavia, un metodo molto più sicuro consiste nell'usare il built-in prune
comando, che cercherà in tutte le immagini per trovare ed eliminare quelle senza riferimenti attivi:
docker image prune -a
Omettendo il -a
tag manterrà le immagini contrassegnate ma non in uso. Con la bandiera rimarranno solo le immagini che stai utilizzando attivamente.
La prune
il comando ti dirà quanto spazio è stato liberato, ma se desideri controllare manualmente la quantità di spazio di archiviazione utilizzata da Docker prima e dopo, puoi utilizzare du -sh
nella directory di archiviazione Docker:
sudo du -sh /var/lib/docker/
Questa directory si troverà in C:ProgramDataDockerDesktop
su Windows e ~/Library/Containers/com.docker.docker/Data/vms/0/
su macOS.