O Docker prune remove recursos obsoletos, como contêineres parados, volumes não utilizados, redes antigas e imagens. Dessa forma, você otimiza o uso do disco e libera espaço de armazenamento.

O que é Docker prune?

Docker prune ou system prune é útil para limpar sistematicamente recursos Docker que não são mais necessários e, assim, ganhar mais espaço de armazenamento. Quando contêineres Docker, imagens, redes e volumes permanecem não utilizados por um longo período, eles podem ocupar uma quantidade considerável de espaço. Com prune, você pode eliminar rapidamente esses recursos não utilizados e manter o sistema limpo e com bom desempenho.

Principalmente em ambientes de desenvolvimento, onde novos contêineres são frequentemente criados e testados, uma variedade de objetos obsoletos pode se acumular. O Docker prune não limpa apenas contêineres e imagens, mas também redes e volumes de que você não precisa mais. Isso facilita significativamente a administração dos recursos do Docker e minimiza o risco de um sistema desordenado e sobrecarregado.

Para que serve o Docker prune?

O comando prune é adequado para várias situações no trabalho diário com o Docker. A seguir, listamos quatro cenários típicos de uso.

  • Otimizar processos de trabalho: Os ambientes Docker são frequentemente utilizados de forma intensiva para desenvolvimento, testes e produção. Sem uma limpeza regular, pode haver rapidamente um acúmulo de recursos desnecessários. Esse excesso não só aumenta a demanda por armazenamento, mas também pode afetar negativamente o desempenho do sistema. Ao remover recursos não utilizados com o Docker prune, os recursos do sistema são utilizados de forma mais eficiente. Isso é particularmente crucial em ambientes baseados em nuvem, onde os custos aumentam com a demanda por recursos de armazenamento e processamento.
  • Aumentar a segurança: Recursos desnecessários e obsoletos do Docker podem representar riscos de segurança. Docker prune remove contêineres, imagens, redes e volumes não utilizados, reduzindo o risco de que componentes antigos e possivelmente inseguros permaneçam desprotegidos. Um ecossistema do Docker bem-organizado ajuda a minimizar a superfície de ataque e a melhorar a segurança de toda a infraestrutura de TI.
  • Aumentar o desempenho: Um ambiente do Docker sobrecarregado pode afetar o desempenho do sistema, ao consumir recursos como CPU e memória de forma desnecessária. A limpeza regular com Docker prune libera espaço de armazenamento e aumenta a eficiência da gestão e execução dos contêineres. Isso reduz significativamente os tempos de carregamento, acelera o provisionamento aplicações e, no geral, melhora a capacidade de resposta do sistema.
  • Simplificar a manutenção: A realização regular do Docker prune simplifica significativamente a manutenção do seu ambiente Docker. A remoção de recursos não utilizados reduz a complexidade das tarefas de administração para desenvolvedores. Além disso, é mais fácil manter o controle sobre os componentes Docker ativos e relevantes, o que acelera o diagnóstico e a resolução de problemas. Isso não só economiza tempo na administração, mas também permite que as equipes se concentrem mais no desenvolvimento e aprimoramento de suas aplicações, em vez de lidarem com recursos desnecessários.

Sintaxe do Docker prune

Você tem um ambiente Docker e deseja limpar recursos para liberar espaço de armazenamento e simplificar a administração? Nesse caso, basta executar o seguinte comando para utilizar o Docker prune:

docker system prune
bash

Por padrão, contêineres parados, imagens não utilizadas, redes e volumes sem uso são identificados e sugeridos para limpeza. O Docker solicita sua confirmação para removê-los. Digite y e pressione Enter. Alternativamente, você também pode usar a opção -f para pular a confirmação e executar a limpeza imediatamente:

docker system prune -f
bash

Dica: É importante verificar quais recursos do Docker estão presentes no sistema antes de aplicar Docker prune. Execute os seguintes comandos para listar todos os contêineres, imagens, redes e volumes:

docker ps -a
docker images
docker volume ls
docker network ls
bash

Opções do Docker prune

A tabela a seguir apresenta uma visão geral das opções de docker system prune.

Opção Descrição
--all, -a Remove todos os recursos Docker não utilizados.
--force, -f Realiza a limpeza sem confirmação do usuário.
--volumes Remove volumes não utilizados.
--filter, -f Permite filtrar os recursos a serem removidos com base em critérios.
--help Exibe ajuda sobre o uso do comando.

Tutorial: Como usar o comando Docker prune

O Docker oferece vários comandos que permitem uma limpeza seletiva de tipos específicos de recursos. Isso lhe dá a flexibilidade para controlar exatamente quais recursos devem ser removidos.

Docker prune --filter

Você pode usar filtros para controlar a seleção dos recursos a serem removidos, como contêineres, imagens, redes e volumes. Isso é especialmente útil em ambientes de desenvolvimento, onde muitos recursos temporários podem ser criados e rapidamente esquecidos.

A sintaxe geral do comando é:

docker <command> prune --filter "filter=<value>"
bash

Entre as principais opções de filtro estão:

  • until: Filtra recursos com base na data de criação. <duration> deve ser um valor numérico com uma unidade como h (horas), m (minutos) ou s (segundos).
docker <command> prune --filter "until=<duration>"
bash

Exemplo: Remover todos os contêineres parados há mais de 24 horas

docker container prune --filter "until=24h"
bash
  • label: Filtra recursos com base em suas etiquetas no Docker
docker <command> prune --filter "label=<label>"
bash

Exemplo: Remover todos os volumes não utilizados que possuem a etiqueta mylabel

docker volume prune --filter "label=mylabel"
bash
  • dangling: Filtra recursos que não estão mais em uso por um contêiner
docker <command> prune --filter "dangling=true"
bash

Exemplo: Remover todas as imagens órfãs (dangling).

docker image prune --filter "dangling=true"
bash

Além dos filtros principais acima, existem também opções de filtro mais específicas, dependendo do tipo de recurso:

  • before e since para imagens: Filtram imagens com base na sua data de criação, antes ou desde um determinado ponto no tempo
  • exited para contêineres: Filtra contêineres com base no status de saída (por exemplo, exited=0 para contêineres que finalizaram com sucesso)

Remover recursos Docker

Passo 1: Abra um terminal ou prompt de comando no seu sistema. Passo 2: Execute o comando docker prune para limpar o sistema:

docker {resource} prune
bash

Substitua {resource} pelo tipo de recurso que você deseja limpar. Os valores válidos são container, image, volume e network.

Remover contêineres Docker

Por padrão, o Docker não remove automaticamente os contêineres depois que eles chegam ao fim do seu ciclo de vida. Portanto, é importante verificar regularmente os contêineres parados e removê-los conforme necessário para liberar recursos bloqueados para contêineres em execução. Existem duas maneiras de fazer isso.

  • docker rm: O comando docker rm serve para remover manualmente um ou vários contêineres do Docker. Se você sabe exatamente quais contêineres deseja remover, essa é a abordagem mais adequada. Você deve fornecer explicitamente os IDs ou nomes dos contêineres que deseja remover. Dessa forma, você pode remover apenas determinados contêineres do seu ambiente, sem afetar outros.

Aqui está um exemplo para excluir os contêineres com os nomes container1 e container2:

docker rm container1 container2
bash
  • docker container prune: Por outro lado, docker container prune é um comando usado para remover vários contêineres parados de uma vez só. Este método é particularmente útil para liberar espaço rapidamente, excluindo todos os contêineres parados que atualmente não possuem processos em execução.
docker container prune
bash

Todos os contêineres parados serão listados, e o Docker solicitará sua confirmação antes de removê-los. Isso é extremamente útil em ambientes onde muitos contêineres temporários são criados e depois se tornam desnecessários.

Para a administração e manutenção diária do seu ambiente Docker, é recomendável usar regularmente o comando docker container prune para remover contêineres parados. Isso economiza tempo e garante que recursos desnecessários não comprometam o desempenho do sistema. O docker rm, por outro lado, é ideal quando você deseja remover contêineres específicos de forma seletiva e controlada, seja para testes, desenvolvimento ou outros requisitos específicos.

Remover imagens Docker

Imagens Docker são os blocos de construção dos contêineres. Com o tempo, você pode acumular muitas versões e tags diferentes. Ao criar ou atualizar novas imagens, frequentemente permanecem versões antigas ou não mais utilizadas, conhecidas como dangling ou, em português, órfãs. Essas imagens ocupam espaço no seu sistema e podem afetar o desempenho, especialmente quando há um grande número delas.

Com o Docker prune, você pode identificar e remover imagens não mais utilizadas:

docker image prune [Options]
bash

As principais opções incluem:

  • -a, --all: Essa opção remove não apenas imagens dangling, mas também imagens sem uso. Imagens sem uso são aquelas que não possuem tags e, portanto, não podem ser referenciadas diretamente.
docker image prune -a
bash
  • -f, --force: Por padrão, o Docker solicita uma confirmação antes que as imagens sejam realmente excluídas. Com -f ou --force, você pode ignorar essa etapa de confirmação e executar a limpeza imediatamente.
docker image prune -f
bash

Remover todas as imagens Docker

Você também pode remover todas as imagens do Docker que não são mais necessárias no seu sistema de forma eficiente e rápida. Para usar o Docker prune de forma eficaz, abra o terminal ou prompt de comando e execute o seguinte comando:

docker image prune -a --force
bash

Certifique-se de verificar quais imagens serão removidas antes de realizar a limpeza. A opção -a também pode remover imagens não utilizadas que ainda possam ser necessárias.

Remover volumes Docker

Volumes são persistentes e armazenam dados mesmo após a interrupção do contêiner associado. Esses volumes podem crescer ao longo do tempo e ocupar recursos desnecessários.

docker volume prune
bash

Esse comando identifica todos os volumes que não estão mais associados a contêineres ativos. O Docker exibirá uma lista de volumes sugeridos para remoção. Além disso, será necessário confirmar a operação antes da exclusão definitiva. Por outro lado, docker volume rm é um comando que remove especificamente volumes individuais do Docker. Isso pode ser útil quando você sabe exatamente qual volume deseja remover, independentemente de estar sendo utilizado por um contêiner ou não. Para remover um volume Docker específico, use o comando docker volume rm seguido pelo nome ou ID do volume:

docker volume rm volume_name
bash

Certifique-se de conhecer o nome exato ou o ID do volume antes de removê-lo, pois esse comando exclui permanentemente os dados e não pode ser desfeito.

Remover redes Docker

No Docker, redes são um componente de comunicação fundamental entre contêineres, independentemente de estarem no mesmo host ou distribuídos em vários hosts. Redes Docker permanecem, mesmo depois que contêineres são encerrados ou removidos. Com o tempo, isso pode levar ao acúmulo de redes que não são mais utilizadas e ocupam recursos desnecessários. O comando docker network prune é uma maneira simples de identificar e remover essas redes sem uso.

O comando segue a seguinte estrutura:

docker network prune [OPTIONS]
bash

O Docker gera uma lista de todas as redes que não estão mais em uso por contêineres ativos ou não são mais referenciadas. Em seguida, o Docker solicita a confirmação antes de remover as redes.

Docker prune: Melhores práticas

  • Limpeza automatizada: Use scripts ou ferramentas automatizadas para limpar regularmente imagens, contêineres e volumes do Docker que não são mais necessários. Isso mantém o ambiente organizado e otimiza o desempenho.
  • Patches de segurança e atualizações: Certifique-se de que o Docker Engine, sistemas operacionais host e todas as imagens Docker sejam regularmente verificados e atualizados com patches de segurança para minimizar possíveis vulnerabilidades.
  • Monitoramento e registro: Utilize ferramentas de monitoramento e logging para acompanhar o desempenho dos contêineres, detectar eventos inesperados e agir proativamente na manutenção.
  • Backup externo: Implemente rotinas para backups externos de dados importantes dos contêineres do Docker. Isso pode ser feito através de backups regulares de bancos de dados ou arquivos de configuração.
  • Verificação manual antes da remoção: Verifique cuidadosamente se você não precisa mais de certos recursos antes de removê-los. Isso minimiza o risco de perda acidental de dados ou interrupção de processos em execução.
Dica

Se você está começando com o Docker, recomendamos nosso tutorial Docker, sobre instalação e primeiros passos.

Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível
Este artigo foi útil?
Ir para o menu principal