Marcio Cunha

Como limpar o cache do Docker e recuperar espaço em disco

Aprenda o passo a passo prático para remover containers parados, imagens órfãs e volumes não utilizados no Docker usando o system prune.

Marcio Cunha•5 min
Também disponível em:EnglishEspañol
Resumo
  • Containers parados continuam ocupando dados estáticos e recursos de metadados no sistema de arquivos do host.
  • Imagens órfãs ou sem tags agregam dezenas de gigabytes de arquivos acumulados após sucessivos builds de aplicação.
  • Volumes não utilizados persistem dados em disco mesmo após a remoção completa dos containers associados.
  • O comando system prune atua como uma ferramenta central de limpeza profunda para apagar recursos inativos de uma só vez.
  • Rotinas periódicas de manutenção evitam que o disco estoure e cause interrupções inesperadas em ambientes de produção.

Por que o Docker consome tanto espaço em disco?

Quem utiliza containers no dia a dia percebe rapidamente que o armazenamento interno do computador ou servidor começa a sumir. Na prática, isso significa que a engine do Docker armazena cada camada de código, dependência e arquivo temporário gerado durante a construção das imagens. Com o tempo, centenas de megabytes ou até gigabytes se acumulam de forma invisível, exigindo manutenções preventivas parecidas com a rotina de como limpar o log do journalctl e recuperar espaço em disco para devolver respiro ao sistema operacional.

O grande vilão dessa história não é apenas o container que está rodando ativamente, mas sim o acúmulo de artefatos que deixaram de ser úteis. Quando você atualiza uma imagem ou recompila um código, a versão anterior não é apagada automaticamente. Ela permanece guardada no disco para o caso de precisar ser reutilizada em um processo de reversão rápida, o que acaba virando um armazém de lixo digital se ninguém fizer a limpeza periódica.

Para entender exatamente quanto espaço o seu ambiente está desperdiçando, o primeiro passo lógico é consultar o estado atual do armazenamento através do terminal. Essa checagem evita surpresas desagradables e ajuda a mensurar o impacto real antes de rodar qualquer comando destrutivo de limpeza, funcionando de forma muito parecida com uma checagem preventiva em como testar memória RAM com o MemTest86 passo a passo para diagnosticar falhas ocultas.

Como verificar o uso atual de armazenamento

Antes de sair apagando dados de forma aleatória, precisamos usar uma ferramenta oficial que mostra detalhadamente o que está consumindo o seu disco. Na prática, o comando de inspeção do Docker revela tabelas separadas por containers, imagens, volumes locais e cache de compilação, permitindo que você tome uma decisão informada sobre o que realmente precisa ser descartado.

Abra o seu terminal e execute a instrução abaixo para listar o panorama geral do consumo de armazenamento:

docker system df

Esse comando exibe o tamanho total de cada categoria, o espaço ocupado por itens ativos e a fatia que está ociosa. Analisar esses números é fundamental para identificar se o problema principal está nos containers parados, nas imagens antigas acumuladas ou nos volumes huérfanos que esquecemos de remover ao destruir aplicações antigas.

Como remover containers parados de forma segura

Containers que já encerraram a sua execução continuam existindo no disco juntamente com seus arquivos de configuração e estado interno. Se você tem dezenas de instâncias antigas que rodaram apenas para testes rápidos, elas representam peso morto na sua estrutura de arquivos.

Para eliminar todos os containers que estão parados no momento, execute o comando dedicado à limpeza de instâncias inativas:

docker container prune

O terminal vai solicitar uma confirmação antes de prosseguir com a exclusão definitiva. Ao confirmar, o Docker remove instantaneamente todas as instâncias que não estão ativas, liberando os blocos de disco associados a elas e garantindo que apenas o que é estritamente necessário continue ocupando espaço no servidor.

Como limpar imagens órfãs e sem tags

As imagens de container são construídas em camadas sucessivas. Quando uma nova versão é baixada, a antiga perde a referência principal e se transforma no que chamamos de imagem órfã ou pendurada (dangling image). Na prática, elas são pedaços soltos que não pertencem a nenhuma aplicação em execução.

Para varrer e apagar essas imagens que ocupam espaço precioso sem utilidade real, utilize o seguinte comando no terminal:

docker image prune

Se você quiser ir além e remover absolutamente todas as imagens que não estão sendo utilizadas por nenhum container ativo no momento (e não apenas as órfãs), basta adicionar a flag de exclusão total:

docker image prune -a

Essa opção mais agressiva varre o repositório local e descarta qualquer imagem que não esteja vinculada a um container rodando naquele exato instante, o que costuma devolver uma quantidade massiva de gigabytes para o disco rígido.

Como apagar volumes não utilizados

Os volumes do Docker servem para persistir dados importantes, como bancos de dados e arquivos enviados por usuários, garantindo que as informações não se percam quando o container é destruído. O problema é que, quando deletamos um projeto inteiro, muitas vezes esquecemos de remover o volume associado a ele.

Esses volumes huérfanos ficam mofando no disco por tempo indeterminado. Para fazer uma varredura segura e apagar todos os volumes que não estão conectados a nenhum container ativo, digite:

docker volume prune

Note que essa operação é irreversível para os dados contidos nesses volumes. Por isso, certifique-se de que nenhum dado crítico de produção esteja armazenado em um volume abandonado antes de confirmar a exclusão no prompt de comando.

Como usar o system prune para limpar tudo de uma vez

Se você não quer executar comandos separados para containers, imagens e volumes, o Docker oferece um atalho mestre que automatiza toda essa faxina em uma única instrução prática. Trata-se do comando universal de limpeza do sistema.

Para realizar uma limpeza geral que remove todos os containers parados, redes não utilizadas, imagens órfãs e o cache de compilação, execute:

docker system prune

Caso queira incluir na faxina geral todas as imagens que não estão em uso (e não apenas as órfãs), adicione a flag extendida:

docker system prune -a

Essa rotina completa resolve noventa por cento dos problemas de falta de espaço causados por ambientes de desenvolvimento e testes locais, devolvendo estabilidade e respiro para o hardware. Para aprofundar esses conceitos na prática em produção, confira também nossa análise técnica sobre Como testar memória RAM com o MemTest86 passo a passo.

Considerações finais

Manter o ambiente de containers organizado evita surpresas desagradáveis com servidores cheios ou falhas de deploy por falta de espaço em disco. Integrar comandos como o system prune em rotinas periódicas de manutenção garante que o Docker continue sendo uma ferramenta leve, ágil e previsível no seu fluxo de trabalho diário.

Adotar boas práticas de limpeza e monitoramento contínuo do armazenamento preserva a saúde do host e prolonga a vida útil dos discos, permitindo que você foque no desenvolvimento de software sem se preocupar com gargalos de infraestrutura.