Onde os gigabytes realmente se escondem
O Docker Desktop no WSL2 guarda tudo — imagens, contêineres, volumes, cache de builds — em distribuições WSL especiais, e cada uma mora no C: como um único arquivo VHDX dinâmico. Cada pull adiciona camadas, cada build adiciona cache, e apagar só libera espaço dentro do sistema de arquivos Linux: o arquivo no host fica na marca máxima. Suas próprias Ubuntu ou Debian fazem o mesmo truque com o ext4.vhdx delas, e nada disso aparece na caça às "pastas gordas", porque para o Windows são poucos arquivos opacos.
- docker-desktop-data (Docker antigo) ou docker_data.vhdx (novo): o devorador principal de 30–80 GB em %LOCALAPPDATA%\Docker\wsl — imagens, contêineres, volumes, cache
- docker-desktop: a distribuição do sistema, menor, onde roda o próprio motor do Docker
- Suas distribuições WSL2: um ext4.vhdx cada, em %LOCALAPPDATA%\Packages\...\LocalState
- Cache de builds: o docker builder guarda camadas intermediárias mesmo depois de você apagar a imagem final
- Imagens penduradas e contêineres parados: camadas órfãs de builds e pulls interrompidos
- Volumes anônimos: criados em silêncio a cada build com compose, sobrevivem até ao docker image prune
Limpe dentro primeiro: compactar um disco sujo é trabalho jogado fora
Compactar um VHDX abarrotado de imagens mortas só produz um arquivo menor que volta a crescer na semana seguinte, então a ordem das operações decide tudo. Comece dentro: o docker system df mostra o que imagens, contêineres, volumes e cache realmente ocupam, e os números costumam surpreender. docker system prune -a remove imagens sem uso e contêineres parados; --volumes acrescenta os volumes órfãos — confira se você não está apagando dados de banco que queria manter. Depois docker builder prune limpa o cache de builds que os rebuilds repetidos engordam; só quando o docker system df mostra um número aceitável vale tocar no arquivo do host.
Depois encolha o disco: três caminhos oficiais
Rode wsl --shutdown primeiro, ou o arquivo continua travado por contêineres e distribuições em atividade. Em builds recentes do WSL, wsl --manage <distro> --set-sparse true marca o VHDX como esparso e o Windows recupera os blocos livres; em versões antigas, o caminho confiável é exportar e importar — wsl --export para um .tar, wsl --unregister, wsl --import numa pasta nova — e o arquivo é recriado no tamanho real dos dados. O Docker Desktop também sabe mudar a imagem de disco inteira para outra unidade em Settings > Resources > Advanced, migrando os dados para você; é a solução honesta quando o C: é simplesmente pequeno demais para o seu trabalho. E aproveite para limitar o crescimento: essa mesma página tem um teto de tamanho de disco, e o hábito mensal de olhar docker system df mantém você abaixo dele.
Perguntas e respostas
Por que o Docker Desktop ocupa tanto espaço em disco?
O Docker guarda cada imagem, camada, volume e item de cache num VHDX dinâmico que cresce sob demanda e nunca encolhe sozinho. Veja a quebra com docker system df, limpe o que não precisa e depois compacte o disco.
Como reduzir o arquivo VHDX do Docker no WSL2?
Rode wsl --shutdown e marque o disco como esparso com wsl --manage <distro> --set-sparse true. Ou exporte a distribuição para um .tar, faça unregister e importe de volta: o VHDX novo fica do tamanho real dos seus dados.
Veja exatamente o que está incluído antes de comprar.
O teste único de 30 minutos cobre os recursos básicos. Os recursos marcados PRO ficam bloqueados até a ativação de uma licença paga.
Continue lendo
Fale com a gente: [email protected]