# Spazio disco di Docker e WSL in Windows: livelli, volumi e pulizia

Docker segnala una grande riduzione dopo la pulizia, ma C: non guadagna subito lo stesso spazio. Identifica il livello che stai misurando. Le risorse di Docker vivono nel suo ambiente; un file system Linux può vivere dentro un disco virtuale; Windows vede quel disco come un file. Lo spazio riutilizzabile dentro l’ambiente è diverso dalla capacità liberata sull’host.

## Identifica prima l’ambiente

Controlla il contesto Docker attuale e l’inventario dello spazio. Questi comandi leggono informazioni senza eliminare risorse.

```powershell
docker context show
docker system df -v
docker ps -a
docker volume ls
wsl --list --verbose
```

Una connessione Docker remota segnala risorse remote, non l’uso locale di C:. Controlla anche se sono impostate `DOCKER_HOST` o `DOCKER_CONTEXT`; le variabili di ambiente possono sostituire la destinazione della connessione, come descritto nella [documentazione dei contesti](https://docs.docker.com/engine/manage-resources/contexts/). L’elenco WSL identifica le distribuzioni locali e le versioni. La [documentazione del backend WSL di Docker](https://docs.docker.com/desktop/features/wsl/) spiega che la disposizione dei dati dipende dalla storia dell’installazione; non dare per scontato che ogni PC abbia la stessa distribuzione dei dati Docker.

## I livelli di immagine condivisi cambiano il conto

Il [riferimento sull’uso del disco di Docker](https://docs.docker.com/reference/cli/docker/system/df/) separa le dimensioni delle immagini condivise e uniche. Le immagini possono riusare i livelli, quindi rimuoverne una non deve liberare il totale mostrato. Recuperabile descrive candidati secondo le relazioni di riferimento attuali, non una garanzia che il loro contenuto sia indesiderato.

| Risorsa | Contenuto tipico | Controlla prima della rimozione |
| --- | --- | --- |
| Immagini | Livelli di runtime e dell’applicazione | Si possono scaricare o ricostruire, e altri contenitori le usano? |
| Contenitori | Istanze e livelli scrivibili | Un contenitore fermo tiene contenuto non esportato? |
| Cache di build | Risultati di build riutilizzabili | La build successiva può scaricare e ricalcolare ciò che le serve? |
| Volumi | Database persistenti o file caricati | Quale progetto li possiede, e il recupero è verificato? |

In un esempio ipotetico, due immagini da 2 GB condividono 1,5 GB. Rimuoverne una non implica un guadagno di 2 GB. Un volume senza un riferimento a un contenitore attuale può comunque contenere il database che hai appena fermato.

## Punta alla cache di build quando il problema è quello

Controlla che restino disponibili sorgenti, sorgenti delle dipendenze e configurazione della build. Se accetti di ricostruire i risultati in cache, il [comando builder prune di Docker](https://docs.docker.com/reference/cli/docker/builder/prune/) punta alla cache di build. Il comando seguente elimina la cache idonea: leggi la richiesta prima di accettare e tieni attiva la conferma interattiva.

```powershell
docker builder prune
```

Il suo ambito è più stretto di `docker system prune`, che punta anche a contenitori fermi, immagini selezionate e reti. Le [opzioni aggiuntive di system prune](https://docs.docker.com/reference/cli/docker/system/prune/) allargano ancora la rimozione. Evita un comando universale per ogni progetto. Con più builder, identifica quello selezionato; pulire un ambiente non dimostra che gli altri siano stati trattati.

## Fai il backup dei dati persistenti a parte

Esporta i database con i loro strumenti e verifica il ripristino in un ambiente isolato. La [guida al backup di Docker](https://docs.docker.com/desktop/settings-and-maintenance/backup-and-restore/) separa dati di immagini e di volumi. Salvare o fare il commit di un’immagine non include i file dei volumi collegati. Un file Compose descrive la configurazione, non contiene il contenuto del database.

Per un backup completo del disco virtuale di Docker Desktop, segui la procedura di arresto documentata, identifica il backend e la posizione dei dati configurata, poi copia il file corretto. Un VHDX che sta cambiando non è un backup stabile. Fai il backup delle distribuzioni WSL personali a parte usando la [guida all’esportazione di WSL](https://learn.microsoft.com/en-us/windows/wsl/basic-commands). Annullare la registrazione di una distribuzione ne rimuove i dati; non è un passo di routine per liberare spazio.

<figure class="blog-diagram">
  <picture>
    <source media="(max-width: 900px)" srcset="/img/blog/windows-docker-wsl-disk-space-windows-en-mobile.webp" type="image/webp" width="768" height="1500">
    <img src="/img/blog/windows-docker-wsl-disk-space-windows-en.webp" width="1360" height="454" loading="lazy" alt="Le risorse Docker hanno esigenze di conservazione diverse">
  </picture>
  <figcaption>Un volume senza riferimenti può comunque tenere dati preziosi; anche i livelli di immagine condivisi limitano ciò che libera una sola rimozione.</figcaption>
</figure>

## Confronta i livelli Linux e Windows

Dentro la tua distribuzione, `df -h /` segnala l’uso del file system radice, mentre `du -h --max-depth=1 /home` aiuta a trovare la crescita delle cartelle utente. Il secondo comando non è un totale di tutto il sistema, e permessi e altre cartelle ne limitano la copertura. Parti da una cartella grande nota invece di attraversare ogni unità montata.

La [guida allo spazio di WSL di Microsoft](https://learn.microsoft.com/en-us/windows/wsl/disk-space) spiega la crescita dinamica dei VHD. Il tetto di capacità di Linux non è l’uso allocato da Windows. L’eliminazione può aumentare lo spazio interno riutilizzabile senza ridurre subito il file esterno. Per il recupero dal lato host, controlla le versioni attuali di WSL e Docker e le procedure supportate. Evita di eliminare o spostare i dischi virtuali in AppData, e non scambiare l’aumento di un limite di capacità con il liberare C:. Per recuperare il file sull’host, libera prima spazio dentro la distribuzione, poi compatta il disco virtuale seguendo la guida di Microsoft allo spazio disco di WSL e le impostazioni dell’immagine disco di Docker Desktop; il comando esatto dipende dalla versione di WSL e dal backend Docker, quindi usa i passi specifici della versione invece di copiare un solo comando.

Dopo la pulizia, ripeti `docker system df -v`, avvia i servizi che tieni, controlla i record del database e completa la build originale. Controlla separatamente le letture di Docker, Linux e Windows. La pagina Analizza di Mole può trovare file grandi; la gestione di risorse e dischi virtuali appartiene agli strumenti proprietari. Vedi la [guida alle cache di sviluppo](/it/windows/blog/windows-developer-caches) per le cache ordinarie dei pacchetti.


Canonical: https://mole.fit/it/windows/blog/docker-wsl-disk-space-windows
