Docker/Artigo

    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:

    bash
    # 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/
    Dica
    A saída do docker system df mostra: Images (imagens baixadas), Containers (containers parados), Local Volumes (volumes Docker), Build Cache (cache de layers de build). A coluna "RECLAIMABLE" é o que você pode liberar com segurança.

    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:

    bash
    # 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 dangling
    Dica
    Imagens dangling são layers intermediárias criadas durante docker build que não têm mais uma tag apontando para elas. São seguras de remover a qualquer momento.

    Limpeza 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:

    bash
    # 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 dias
    Atenção
    docker system prune -a pode causar lentidão no próximo deploy se as imagens precisarem ser baixadas novamente. Use em janelas de manutenção ou quando o disco estiver crítico.

    Volumes ó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:

    bash
    # 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_volume
    Atenção
    Nunca rode docker volume prune em produção sem inspecionar os volumes primeiro. Um volume "órfão" pode ser de um container que você vai recriar — os dados seriam perdidos permanentemente.

    Automatizar limpeza periódica

    Configure limpeza automática de imagens e containers para o disco não encher gradualmente:

    bash
    # 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.

    Perguntas frequentes