Como liberar espaço em disco no WSL2 com Docker no Windows
Paulo Bolsanello·27 Mai 2026·3 min de leitura
A ordem é: primeiro limpar o Docker, depois compactar o VHDX
O ext4.vhdx é o disco virtual do WSL. Ele cresce conforme você usa, mas não encolhe sozinho quando você apaga coisas dentro do WSL. Por isso, mesmo que você rode docker system prune e libere 80GB, o arquivo .vhdx no Windows continua com o mesmo tamanho. O diskpart + compact vdisk é o que devolve esse espaço pro Windows.
Se você rodar o compact vdiskantes de limpar o Docker, ele não vai liberar quase nada, porque o espaço ainda está ocupado de verdade.
Passo 1 — Limpar o Docker dentro do WSL
Olhando seus números: 57.92GB recuperáveis em imagens + 30.06GB em build cache. Tem quase 90GB pra recuperar aí.
Atenção com volume prune: ele remove volumes que não estão anexados a nenhum container. Se você tem um volume com dados do banco do proseleta e o container está parado no momento, esse volume vai junto. Antes de rodar, confere:
docker volume ls
Se tiver algum volume importante (tipo proseleta_mysql_data ou similar), pula o volume prune e remove só os que você sabe que são lixo:
docker volume rm nome_do_volume
Atalho que faz tudo de uma vez (menos volumes):
docker system prune -a -f
Depois confere quanto sobrou:
docker system df
Passo 2 — Compactar o VHDX no Windows
Agora sim, no PowerShell do Windows como Administrador (não no WSL):
wsl --shutdown
Espera uns 10 segundos pra garantir que o WSL desligou de verdade. Depois:
diskpart
Vai abrir o prompt do diskpart. Antes de mais nada, você precisa achar o caminho real do seu ext4.vhdx. Aquele {seuUsuario} e {caminho_unico_por_maquina} são placeholders.
Procure uma pasta que começa com CanonicalGroupLimited.Ubuntu... (o nome completo varia, algo tipo CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc). Dentro dela, vá em LocalState\ e confirme que tem o arquivo ext4.vhdx. Copia o caminho completo.
Se você usa Docker Desktop com o backend WSL2, o disco que cresce mais é geralmente o do Docker, não o do Ubuntu. Ele fica em:
O attach vdisk readonly é importante — sem ele, o compact vdisk em versões mais recentes do Windows reclama. Algumas versões funcionam sem, mas com o readonly funciona sempre.
Pra compactar o disco do Docker, sai do diskpart, repete o wsl --shutdown (por garantia) e roda de novo com o outro caminho.
Alternativa mais simples: Optimize-VHD
Se você tem Windows Pro/Enterprise com Hyper-V habilitado, dá pra fazer tudo em uma linha no PowerShell admin:
wsl --shutdown
Optimize-VHD -Path "C:\Users\paulo\AppData\Local\Docker\wsl\disk\docker_data.vhdx" -Mode Full
No Windows Home não funciona porque não tem o módulo Hyper-V.
Verificando o resultado
Antes de começar, anota o tamanho atual do .vhdx (botão direito → propriedades). Depois de compactar, confere de novo. Você deveria ver uma redução considerável — provavelmente algo entre 60 e 80 GB no seu caso, dado o que o docker system df mostrou.
Se a compactação não reduzir muito, geralmente é porque (1) o Docker não foi limpo antes, ou (2) o WSL não foi totalmente desligado e o .vhdx ainda estava em uso. Roda wsl --list --running no PowerShell pra confirmar que nada está rodando antes do compact.
O Design Pattern Facade é uma solução elegante para simplificar a interface de um subsistema complexo, tornando-o mais fácil de usar. Ele atua como uma fachada que esconde a complexidade de classes e interações…
Nesta semana o Postgres vem me desafiando, e meu pc também, porque por algum motivo o PGADMIN está demorando uma eternidade para rodar o procedimento de restore de backups. Numa dessas situações do dia-a-dia com o…