Guide di Levo · Sviluppatori: tutto il resto

Docker occupa troppo spazio su disco su un Mac

Docker su un Mac conserva tutto in un unico grande file di disco virtuale, Docker.raw, che cresce ma non si riduce da solo. Esegui docker system df per vedere cosa lo occupa, poi docker system prune e docker builder prune per liberarlo.

L'elenco Ready to free di Levo con le immagini Docker e la cache di build, ognuna con dimensione e motivo
CosaCome vederloSi può eliminare?
Container fermidocker ps -aSì, a meno che ti serva ciò che c'è dentro
Immagini non usatedocker imagesSì, vengono scaricate o ricostruite quando servono
Cache di builddocker builder duSì, la build successiva è più lenta
Volumidocker volume lsAttenzione. Qui vive un database
Il file del disco~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.rawMai a mano

Perché Docker.raw è così grande

I container girano in una piccola VM Linux, e il disco della VM è un singolo file sul tuo Mac. Docker Desktop imposta una dimensione massima, spesso 60 GB o più, e il file cresce verso quel limite man mano che scarichi immagini e fai build. Nel Finder può sembrare molto più grande di quanto sia, perché è un file sparso: ls -lh mostra il massimo, du -sh mostra quanto è davvero usato.

Il problema è che eliminare le immagini libera spazio dentro la VM, ma il file sul Mac non si riduce subito. Le versioni recenti di Docker Desktop restituiscono a macOS i blocchi liberati, ma su configurazioni più vecchie o dopo molti cambiamenti potrebbe servire ridimensionare il disco o reimpostarlo da Settings › Resources.

Come farlo da solo

Vedi cosa occupa lo spazio

docker system df
docker system df -v

Il primo comando dà i totali di immagini, container, volumi e cache di build, con una colonna RECLAIMABLE. Il secondo elenca ciascun elemento. La cache di build è la più silenziosa: dopo qualche settimana di build è spesso la riga più grande.

Liberalo

docker container prune
docker image prune -a
docker builder prune
docker system prune

I volumi sono il posto dove vivono database, file caricati e tutto ciò che il tuo file compose monta su un volume con nome. docker system prune --volumes rimuove ogni volume che nessun container sta usando in questo momento, compreso quello di Postgres del progetto che aprirai la settimana prossima. Elencali con docker volume ls e rimuovili uno alla volta con docker volume rm <name> dopo aver controllato.

Restituisci lo spazio a macOS

Dopo il prune, ricontrolla la dimensione reale.

du -sh ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

Se è ancora enorme, apri Docker Desktop, vai in Settings › Resources e abbassa Virtual disk limit, oppure scegli Troubleshoot › Clean / Purge data per ripartire da zero. La seconda opzione elimina tutte le tue immagini, i container e i volumi. Non trascinare Docker.raw nel Cestino mentre Docker è in esecuzione: perdi tutto ciò che contiene e puoi corrompere la VM.

OrbStack, Colima e Podman

Gli stessi comandi funzionano, perché tutti parlano l'API di Docker. Cambia solo dove vive il disco.

Se non usi più Docker, leggi come disinstallare Docker su un Mac. Per uno sguardo più ampio al resto dei tuoi strumenti c'è la pulizia del disco per sviluppatori.

Come fa Levo

Levo elenca le immagini Docker e la cache di build come tipi a sé in Ready to free (pronto da liberare), con dimensioni e motivi. Li trova tramite il suo indice aggiornato del disco, quindi li vedi senza eseguire alcun comando e senza dover ricordare quale dei quattro comandi prune usare.

Il tuo agente valuta cosa è sicuro. Le immagini che nessuno usa e la cache di build sono candidati ordinari. I volumi possono contenere dati che non si recuperano, quindi guardali tu, e Levo non pulisce mai nulla che sia in uso. L'agente si limita a leggere, ed è Levo a eliminare dopo un ulteriore controllo.

Scegli un livello di pulizia, spunti ciò che va via e premi Clean up. Se disinstalli Docker Desktop con Levo, il passaggio di conferma elenca i suoi grandi residui così li vedi prima che spariscano. Vedi Levo per sviluppatori web. Due pulizie sono gratuite, poi c'è una licenza a vita.

Domande frequenti

È sicuro eseguire docker system prune?

Sì per container, reti, immagini orfane e cache di build, ma la build successiva sarà più lenta e alcune immagini verranno scaricate di nuovo. Lascia stare i volumi a meno che tu non aggiunga --volumes, che è il flag da usare con cautela.

Perché Docker.raw è ancora enorme dopo aver eliminato le immagini?

Il file è sparso e non sempre si riduce quando lo spazio dentro la VM viene liberato. Controlla la dimensione reale con du -sh. Se è ancora grande, abbassa il limite del disco virtuale nelle impostazioni Resources di Docker Desktop oppure elimina i suoi dati.

Posso eliminare Docker.raw?

Solo dal menu Troubleshoot di Docker Desktop con Docker in esecuzione, oppure dopo averlo chiuso e disinstallato. Eliminare il file a mano rimuove ogni immagine, container e volume al suo interno.

Di quanto spazio ha bisogno Docker su un Mac?

Dipende da cosa esegui. Calcola 20-60 GB se costruisci molte immagini. Il limite del disco virtuale in Docker Desktop fissa il tetto.

OrbStack usa meno disco di Docker Desktop?

Di solito sì, perché cresce e si riduce su richiesta e condivide i file con macOS. Conserva comunque immagini, cache di build e volumi, quindi anche lì valgono docker system df e prune.