Marcio Cunha

Docker sem espaço? Como limpar o cache e liberar disco no Linux

Seu servidor ficou sem espaço em disco por causa do Docker? Aprenda como usar o comando docker system prune para remover imagens e containers esquecidos com segurança.

Marcio Cunha•2 min
Também disponível em:EnglishEspañol
Resumo
  • O acúmulo de camadas de imagens antigas e logs é a causa principal da falta de espaço em servidores Docker.
  • O comando docker system prune é a ferramenta padrão para descartar automaticamente todos os recursos parados sem afetar serviços em execução.
  • Volumes de dados não são removidos por padrão no prune, protegendo seus bancos de dados e arquivos persistentes contra exclusões acidentais.
  • A estratégia de limpeza deve ser combinada com o monitoramento de logs, pois logs excessivos frequentemente consomem mais espaço que os próprios containers.
  • Agendar limpezas manuais ou via crontab ajuda a manter a saúde do servidor, mas requer atenção a imagens base que são compartilhadas entre projetos.

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

O Docker trabalha com um sistema de camadas. Cada vez que você faz um build de uma imagem ou baixa uma nova versão de uma biblioteca, o Docker armazena pedaços de arquivos em disco. Com o passar do tempo, imagens antigas que não são mais usadas, containers que pararam de rodar e cache de builds acumulados ocupam gigabytes preciosos. Na prática, o que vemos em servidores de produção é um acúmulo silencioso de "lixo" digital.

Como identificar o que está ocupando espaço

Antes de apagar tudo, é bom saber onde o problema está. Use o comando docker system df para ter uma visão geral do uso de espaço. Ele mostra exatamente quanto do seu disco está sendo usado por imagens, containers e volumes. Se notar que o valor de "reclaimable" (recuperável) é alto, é hora de agir. Lembre-se que, além do Docker, processos de sistema também podem travar seu armazenamento, e saber como usar o htop para achar processos pesados no Linux é uma ótima prática de suporte.

O poder do comando docker system prune

O comando docker system prune é a maneira mais direta de limpar o que não está sendo usado. Ele remove containers parados, redes não utilizadas e imagens sem tags (aquelas que ficam com nome e tag como ). Ele não toca em volumes a menos que você peça especificamente. Se o seu problema persistir, pode ser útil conferir como remover volumes órfãos facilmente para ganhar ainda mais espaço com segurança.

  1. Verifique o estado atual do disco:
    docker system df
  2. Execute a limpeza básica (sem remover volumes):
    docker system prune
  3. Para uma limpeza agressiva, incluindo volumes não usados (cuidado!):
    docker system prune -a --volumes

Cuidados ao limpar volumes e imagens

Limpar o ambiente é necessário, mas requer cautela. A opção --volumes apaga permanentemente dados persistentes que não estão conectados a nenhum container. Se você tem bancos de dados que foram desconectados por um erro de rede ou reconfiguração, esses dados serão perdidos. Sempre verifique se não há containers importantes em estado de parada que deveriam ser reiniciados antes de disparar o prune. A automação é útil, mas o controle manual sobre o que é crítico garante que você não precise restaurar backups em um momento de pico. Para aprofundar esses conceitos na prática em produção, confira também nossa análise técnica sobre Pods presos em Terminating? Como forçar a remoção no K8s.

Conclusão

Recuperar espaço no Docker é uma tarefa essencial de manutenção para manter servidores estáveis e prevenir quedas por falta de armazenamento. Ao integrar o docker system prune em sua rotina de operações, você garante um ambiente limpo e eficiente, evitando surpresas indesejadas em produção.

A prática de manter o ambiente enxuto vai além da economia de disco; ela facilita auditorias de segurança e simplifica o gerenciamento de versões. Use estas ferramentas com responsabilidade e mantenha seu servidor sempre pronto para escalar sem o peso de arquivos esquecidos.