Dove si nascondono davvero i gigabyte
Docker Desktop su WSL2 tiene tutto — immagini, container, volumi, cache di build — in distribuzioni WSL speciali, ciascuna salvata su C: come un unico file VHDX dinamico. Ogni pull aggiunge layer, ogni build aggiunge cache, ma cancellare qualcosa libera spazio solo dentro il filesystem Linux: il file lato host resta al suo livello di picco. Le tue Ubuntu o Debian personali fanno lo stesso trucco con il loro ext4.vhdx, e in una caccia alle «cartelle più grasse» nulla di tutto ciò compare, perché per Windows sono un paio di file opachi.
- docker-desktop-data (Docker più vecchio) o docker_data.vhdx (più recente): il divoratore principale da 30–80 GB sotto %LOCALAPPDATA%\Docker\wsl — immagini, container, volumi, cache di build
- docker-desktop: la distribuzione di sistema, più piccola, che fa girare il motore Docker stesso
- Le tue distribuzioni WSL2: un ext4.vhdx ciascuna sotto %LOCALAPPDATA%\Packages\...\LocalState
- Cache di build: docker builder conserva i layer intermedi anche dopo che hai cancellato l'immagine finale
- Immagini dangling e container fermi: layer orfani di build e pull interrotte
- Volumi anonimi: creati in silenzio a ogni build dai file compose, sopravvivono perfino a docker image prune
Prima pulisci dentro — comprimere un disco sporco è lavoro sprecato
Compattare un VHDX ancora pieno di immagini morte produce solo un file più piccolo che torna a gonfiarsi, quindi l'ordine delle operazioni conta. Comincia dentro: docker system df mostra quanto occupano davvero immagini, container, volumi e cache, e i numeri di solito sorprendono. docker system prune -a rimuove immagini inutilizzate e container fermi, --volumes aggiunge i volumi orfani — accertati di non cancellare dati di database che ti servono davvero. Poi docker builder prune ripulisce la cache di build che le rebuild ripetute amano gonfiare; solo quando docker system df riporta un numero che accetti vale la pena toccare il file host.
Poi restringi il disco: tre strade supportate
Prima wsl --shutdown, o il file resta bloccato dai container e dalle distribuzioni in esecuzione. Sulle build recenti di WSL, wsl --manage <distribuzione> --set-sparse true marca il VHDX sparse così Windows può recuperare i blocchi liberi; sulle configurazioni più vecchie la strada affidabile è esportare e importare — wsl --export in un .tar, wsl --unregister, wsl --import in una cartella nuova — e il file viene ricostruito alla dimensione reale dei dati. Docker Desktop può anche spostare l'intera immagine disco su un'altra unità in Settings > Resources > Advanced, migrando i dati per te — la soluzione onesta quando C: è semplicemente troppo piccolo per il tuo lavoro. E già che ci sei, metti un tetto alla crescita: nella stessa pagina di impostazioni c'è un limite di dimensione del disco, e l'abitudine mensile a controllare docker system df ti tiene nei limiti.
Domande e risposte
Perché Docker Desktop occupa tutto quello spazio su disco?
Docker tiene ogni immagine, layer, volume e voce di cache di build in un VHDX dinamico che cresce su richiesta e non si restringe mai da solo. Guarda il dettaglio con docker system df, elimina il superfluo, poi compatta o esporta/importa il disco.
Come riduco il file VHDX di Docker su WSL2?
Esegui prima wsl --shutdown, poi imposta il disco sparse con wsl --manage <distribuzione> --set-sparse true, oppure esporta la distribuzione in un .tar, deregistrala e reimportala — il VHDX fresco corrisponde al tuo reale volume di dati.
Scopri cosa include la licenza prima dell'acquisto.
La prova singola di 30 minuti include gli strumenti essenziali. Le funzioni PRO restano bloccate finché non attivi una licenza a pagamento.
Da leggere dopo
Scrivici: [email protected]