Tutorial Docker prune: Sintaxe e exemplos
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
:
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:
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:
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 é:
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 comoh
(horas),m
(minutos) ous
(segundos).
Exemplo: Remover todos os contêineres parados há mais de 24 horas
label
: Filtra recursos com base em suas etiquetas no Docker
Exemplo: Remover todos os volumes não utilizados que possuem a etiqueta mylabel
dangling
: Filtra recursos que não estão mais em uso por um contêiner
Exemplo: Remover todas as imagens órfãs (dangling).
Além dos filtros principais acima, existem também opções de filtro mais específicas, dependendo do tipo de recurso:
before
esince
para imagens: Filtram imagens com base na sua data de criação, antes ou desde um determinado ponto no tempoexited
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:
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 comandodocker 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 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.
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:
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.
-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.
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:
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.
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:
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:
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.
Se você está começando com o Docker, recomendamos nosso tutorial Docker, sobre instalação e primeiros passos.
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