Como liberar espaço em disco no Docker
O Docker acumula espaço em disco de três formas: imagens que não são mais usadas (incluindo layers antigas), containers parados que não foram removidos, e volumes anônimos órfãos. O comando docker system df mostra exatamente quanto cada um ocupa. Para uma limpeza segura de tudo que não está em uso: docker system prune. Para remover também imagens sem container associado: docker system prune -a.
Ver quanto espaço o Docker está usando
Antes de limpar, identifique o que está ocupando espaço:
# Resumo de uso por categoria
docker system df
# Versão detalhada com nomes individuais
docker system df -v
# Ver tamanho total do diretório do Docker (requer sudo)
sudo du -sh /var/lib/docker/Limpeza segura (apenas recursos não usados)
docker system prune remove apenas o que não tem nenhum container ativo associado — é seguro para produção:
# Remove: containers parados, redes não usadas, imagens dangling*, build cache
docker system prune
# Com confirmação automática (útil em scripts/CI)
docker system prune -f
# * Imagem "dangling" = layers sem tag, resultado de rebuilds.
# Exemplos de imagens dangling:
docker images -f dangling=true
docker image prune -f # remove apenas danglingLimpeza agressiva (remove imagens sem container ativo)
docker system prune -a remove também imagens que não têm nenhum container rodando ou parado associado. Elas serão baixadas novamente na próxima execução:
# ATENÇÃO: isso remove TODAS as imagens sem container associado
# Os containers precisarão baixar as imagens novamente no próximo start
docker system prune -a
# Para limpar só imagens (sem tocar em containers, volumes ou redes):
docker image prune -a
# Remover apenas imagens mais antigas que X dias:
docker image prune -a --filter "until=720h" # 30 diasVolumes órfãos (cuidado — irreversível)
Volumes Docker sem container associado ocupam espaço mas podem conter dados importantes de containers removidos. Inspecione antes de apagar:
# Listar volumes sem container associado
docker volume ls -f dangling=true
# Inspecionar um volume antes de remover
docker volume inspect nome_do_volume
# Remover apenas volumes órfãos (CONFIRME que são inúteis antes!)
docker volume prune
# Remover um volume específico
docker volume rm nome_do_volumeAutomatizar limpeza periódica
Configure limpeza automática de imagens e containers para o disco não encher gradualmente:
# Adicionar ao crontab para rodar toda semana às 3h da manhã
# crontab -e
0 3 * * 0 docker system prune -f >> /var/log/docker-prune.log 2>&1
# Configurar log rotation automático no Docker daemon
# /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
# Aplicar sem reiniciar containers:
sudo systemctl reload docker$ runstack deploy --plan starter
Não quer configurar manualmente?
Não quer configurar manualmente? Implante o Docker em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.