O Docker está ocupando espaço no meu Mac
O Docker Desktop guarda tudo em um arquivo. Ele cresce a cada compilação, e apagar imagens não o deixa menor. Aqui está o porquê, e o que de fato recupera o espaço.
Teste grátis de 14 dias, sem cartão. Depois US$ 15 uma vez para 3 computadores, macOS e Linux.

Onde está o espaço
No macOS o Docker Desktop roda uma máquina virtual Linux, e todo o sistema de arquivos dessa máquina é um único arquivo esparso no seu Mac:
~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
Confira o tamanho real em disco — não o lógico, que é sempre o máximo que você permitiu ao Docker:
du -h -d0 ~/Library/Containers/com.docker.docker/Data/vms/0/data/
Por que apagar imagens não reduz o arquivo
Remover uma imagem libera blocos dentro do sistema de arquivos da máquina virtual, mas o arquivo no seu Mac mantém o tamanho: ele já tomou aquilo do macOS. Versões recentes do Docker Desktop emitem TRIM de dentro da máquina, o que deixa o macOS reaver os blocos liberados, mas isso acontece no ritmo do Docker e não no instante do prune. Até lá, docker system df informa gigabytes liberados enquanto o Finder não mostra mudança nenhuma.
Reaver o espaço
Em ordem: do menos destrutivo ao mais.
1. Ver o que o Docker acha que está usando
Comece sempre por aqui. Ele separa imagens, contêineres, volumes e cache de compilação, e diz quanto de cada um dá para recuperar.
docker system df -v
2. Limpar o cache de compilação
Numa máquina que compila imagens com frequência, esse costuma ser o maior item e o mais seguro de remover: só deixa a próxima compilação mais lenta.
docker builder prune -a
3. Limpar o que de fato não é usado
Contêineres parados, imagens órfãs e redes sem uso:
docker system prune
Acrescente -a para remover também toda imagem que nenhum contêiner em execução use — o que significa baixá-las de novo depois. Só acrescente o próximo --volumes se tiver certeza: nos volumes é onde os bancos de dados guardam seus dados, e esse é o único comando desta página que destrói algo que você não consegue baixar de novo.
4. Liste os volumes antes de mexer neles
Veja o que sumiria de verdade:
docker volume ls
docker volume ls -f dangling=true
O Docker raramente é a única coisa
Você pode rodar todos os comandos desta página, e no mesmo Mac o DerivedData do Xcode e alguns pesos de modelos esquecidos costumam ser igualmente grandes. O Bytesweep mede o tamanho real do Docker em disco ao lado de todos eles numa passada de dez segundos, para você resolver o disco de uma vez em vez de caçar ferramenta por ferramenta.
5. Fazer o macOS reaver o arquivo
Depois do prune, o Docker Desktop tem um jeito previsto de devolver os blocos liberados: Ajustes → Recursos → Avançado → Uso de disco, ou sair e reabrir o Docker Desktop, o que dispara o TRIM na inicialização. Dê um minuto e confira o tamanho do arquivo de novo antes de decidir que não funcionou.
6. Baixar o limite de disco
Em Ajustes → Recursos, o limite de disco virtual é o quanto o Docker.raw pode crescer. Baixá-lo não libera nada sozinho, mas põe um teto no problema. Tê-lo aumentado «por via das dúvidas» é o motivo de o arquivo ter chegado a 64 GB.
7. O último recurso
Ajustes → Solução de problemas → Clean / Purge data reinicia por completo o disco da máquina virtual e devolve o arquivo a quase zero. Apaga toda imagem, contêiner e volume que você tem. Use quando nada mais funcionou e você sabe o que há nos seus volumes.
Não apague o Docker.raw pelo Finder. Não é um arquivo de cache: são os dados de toda a instalação do Docker, e removê-lo com o Docker em execução pode deixar a máquina virtual num estado que vai exigir um reset de qualquer jeito.
Também vale conferir
O Docker raramente está sozinho
No Mac em que o Docker chegou a 50 GB, o DerivedData do Xcode e os modelos de IA locais costumam vir logo atrás. Se você vai recuperar espaço, vale medir o disco inteiro uma vez em vez de consertar uma coisa de cada vez. A lista completa →
No Linux não existe arquivo de imagem
No Linux o Docker grava direto em /var/lib/docker, então um prune libera o espaço na hora e nada do problema de TRIM acima se aplica. Limpeza de disco no Linux →
Ver o Docker ao lado de todo o resto
O Bytesweep mede o tamanho real do Docker em disco, mostra ao lado de Xcode, simuladores, node_modules e pesos de modelos, e marca o que dá para limpar com segurança — sem encostar nos seus volumes.
Perguntas
É seguro apagar o Docker.raw?
Não pelo Finder, e não com o Docker em execução. Esse único arquivo é toda imagem, contêiner e volume que você tem. Se quiser mesmo começar do zero, use Solução de problemas → Clean / Purge data no Docker Desktop, que faz o mesmo de um jeito que o Docker conhece.
Por que o docker system prune diz que liberou 20 GB se nada mudou?
Porque liberou 20 GB dentro do sistema de arquivos da máquina virtual, não no seu Mac. O arquivo mantém o tamanho até o TRIM rodar e o macOS reaver os blocos. Sair e reabrir o Docker Desktop costuma disparar isso.
O docker system prune apaga meus bancos de dados?
Só se você acrescentar --volumes. Sem essa opção ele deixa os volumes em paz. Com ela, todo volume não ligado a um contêiner some, e o volume de um banco parado conta como não ligado.
Qual deveria ser o tamanho do Docker.raw?
Não há resposta certa, mas numa máquina com alguns projetos ativos, de 15 a 25 GB é normal, e 60 GB quer dizer que o cache de compilação nunca foi limpo. Confira com docker system df -v antes de supor que são as imagens.