Docker occupa spazio sul mio Mac
Docker Desktop tiene tutto in un file. Cresce a ogni build, e cancellare immagini non lo rende più piccolo. Ecco perché, e cosa recupera davvero lo spazio.
Prova gratuita di 14 giorni, senza carta. Poi 15 $ una volta per 3 computer, macOS e Linux.

Dov'è lo spazio
Su macOS Docker Desktop esegue una macchina virtuale Linux, e l'intero file system di quella macchina è un unico file sparso sul tuo Mac:
~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
Controlla la dimensione reale su disco — non quella logica, che è sempre il massimo che hai concesso a Docker:
du -h -d0 ~/Library/Containers/com.docker.docker/Data/vms/0/data/
Perché cancellare immagini non lo riduce
Rimuovere un'immagine libera blocchi dentro il file system della macchina virtuale, ma il file sul tuo Mac mantiene la sua dimensione: quello spazio se l'è già preso da macOS. Le versioni recenti di Docker Desktop emettono TRIM dall'interno della macchina, il che permette a macOS di recuperare i blocchi liberati, ma accade secondo i tempi di Docker e non nel momento in cui fai il prune. Fino ad allora, docker system df riporta gigabyte liberati mentre il Finder non mostra alcun cambiamento.
Riprendersi lo spazio
In ordine: prima il meno distruttivo.
1. Vedere cosa Docker pensa di usare
Parti sempre da qui. Divide immagini, container, volumi e cache di build, e ti dice quanto di ciascuno è recuperabile.
docker system df -v
2. Svuotare la cache di build
Su una macchina che costruisce immagini regolarmente questa è di solito la voce più grande e la più sicura da rimuovere: rende solo più lenta la build successiva.
docker builder prune -a
3. Ripulire ciò che davvero non è usato
Container fermi, immagini orfane e reti inutilizzate:
docker system prune
Aggiungi -a per rimuovere anche ogni immagine non usata da un container in esecuzione — il che significa riscaricarle dopo. Aggiungi quanto segue --volumes solo se sei certo: nei volumi è dove i database tengono i loro dati, ed è l'unico comando di questa pagina che distrugge qualcosa che non puoi riscaricare.
4. Elenca i volumi prima di toccarli
Guarda cosa sparirebbe davvero:
docker volume ls
docker volume ls -f dangling=true
Docker raramente è l'unica cosa
Puoi eseguire ogni comando di questa pagina, e sullo stesso Mac DerivedData di Xcode e qualche peso di modello dimenticato sono di solito altrettanto grandi. Bytesweep misura la dimensione reale di Docker su disco accanto a tutti loro in un passaggio da dieci secondi, così sistemi il disco una volta invece di rincorrerlo strumento per strumento.
5. Far recuperare il file a macOS
Dopo il prune, Docker Desktop ha un modo previsto per restituire i blocchi liberati: Impostazioni → Risorse → Avanzate → Utilizzo disco, oppure uscire e riaprire Docker Desktop, che all'avvio innesca il TRIM. Dagli un minuto e ricontrolla la dimensione del file prima di decidere che non ha funzionato.
6. Abbassare il limite del disco
In Impostazioni → Risorseil limite del disco virtuale è quanto Docker.raw può crescere. Abbassarlo non libera nulla di per sé, ma mette un tetto al problema. Averlo alzato «per sicurezza» è il motivo per cui il file ha raggiunto 64 GB.
7. L'ultima risorsa
Impostazioni → Risoluzione dei problemi → Clean / Purge data azzera completamente il disco della macchina virtuale e riporta il file quasi a zero. Cancella ogni immagine, container e volume che hai. Usalo quando nient'altro ha funzionato e sai cosa c'è nei tuoi volumi.
Non cancellare Docker.raw dal Finder. Non è un file di cache: sono i dati dell'intera installazione di Docker, e rimuoverlo mentre Docker è in esecuzione può lasciare la macchina virtuale in uno stato che richiederà comunque un ripristino.
Vale la pena controllare anche
Docker raramente è solo
Sul Mac dove Docker è arrivato a 50 GB, DerivedData di Xcode e i modelli di IA locali sono di solito subito dietro. Se stai recuperando spazio, conviene misurare l'intero disco una volta invece di sistemare una cosa alla volta. La lista completa →
Su Linux non c'è un file immagine
Su Linux Docker scrive direttamente in /var/lib/docker, quindi un prune libera lo spazio subito e nulla del problema di TRIM qui sopra si applica. Pulizia del disco su Linux →
Vedere Docker accanto a tutto il resto
Bytesweep misura la dimensione reale di Docker su disco, la mostra accanto a Xcode, ai simulatori, a node_modules e ai pesi dei modelli, e segnala cosa si può togliere senza rischi — senza toccare i tuoi volumi.
Domande
È sicuro cancellare Docker.raw?
Non dal Finder, e non mentre Docker è in esecuzione. Quel singolo file è ogni immagine, container e volume che hai. Se vuoi davvero ripartire da zero, usa Risoluzione dei problemi → Clean / Purge data in Docker Desktop, che fa la stessa cosa in un modo che Docker conosce.
Perché docker system prune dice di aver liberato 20 GB se non è cambiato nulla?
Perché ha liberato 20 GB dentro il file system della macchina virtuale, non sul tuo Mac. Il file mantiene la sua dimensione finché il TRIM non viene eseguito e macOS non recupera i blocchi. Uscire e riaprire Docker Desktop di solito lo innesca.
docker system prune cancella i miei database?
Solo se aggiungi --volumes. Senza quel flag lascia stare i volumi. Con esso sparisce ogni volume non collegato a un container, e il volume di un database fermo conta come non collegato.
Quanto dovrebbe essere grande Docker.raw?
Non c'è una risposta giusta, ma su una macchina con qualche progetto attivo da 15 a 25 GB è normale, e 60 GB significa che la cache di build non è mai stata svuotata. Controlla con docker system df -v prima di dare per scontato che siano le immagini.