O Docker prune remove recursos obsoletos, como con­têi­ne­res parados, volumes não uti­li­za­dos, redes antigas e imagens. Dessa forma, você otimiza o uso do disco e libera espaço de ar­ma­ze­na­mento.

O que é Docker prune?

Docker prune ou system prune é útil para limpar sis­te­ma­ti­ca­mente recursos Docker que não são mais ne­ces­sá­rios e, assim, ganhar mais espaço de ar­ma­ze­na­mento. Quando con­têi­ne­res Docker, imagens, redes e volumes per­ma­ne­cem não uti­li­za­dos por um longo período, eles podem ocupar uma quan­ti­dade con­si­de­rá­vel de espaço. Com prune, você pode eliminar ra­pi­da­mente esses recursos não uti­li­za­dos e manter o sistema limpo e com bom de­sem­pe­nho.

Prin­ci­pal­mente em ambientes de de­sen­vol­vi­mento, onde novos con­têi­ne­res são fre­quen­te­mente criados e testados, uma variedade de objetos obsoletos pode se acumular. O Docker prune não limpa apenas con­têi­ne­res e imagens, mas também redes e volumes de que você não precisa mais. Isso facilita sig­ni­fi­ca­ti­va­mente a ad­mi­nis­tra­ção dos recursos do Docker e minimiza o risco de um sistema de­sor­de­nado e so­bre­car­re­gado.

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 fre­quen­te­mente uti­li­za­dos de forma intensiva para de­sen­vol­vi­mento, testes e produção. Sem uma limpeza regular, pode haver ra­pi­da­mente um acúmulo de recursos des­ne­ces­sá­rios. Esse excesso não só aumenta a demanda por ar­ma­ze­na­mento, mas também pode afetar ne­ga­ti­va­mente o de­sem­pe­nho do sistema. Ao remover recursos não uti­li­za­dos com o Docker prune, os recursos do sistema são uti­li­za­dos de forma mais eficiente. Isso é par­ti­cu­lar­mente crucial em ambientes baseados em nuvem, onde os custos aumentam com a demanda por recursos de ar­ma­ze­na­mento e pro­ces­sa­mento.
  • Aumentar a segurança: Recursos des­ne­ces­sá­rios e obsoletos do Docker podem re­pre­sen­tar riscos de segurança. Docker prune remove con­têi­ne­res, imagens, redes e volumes não uti­li­za­dos, reduzindo o risco de que com­po­nen­tes antigos e pos­si­vel­mente inseguros per­ma­ne­çam des­pro­te­gi­dos. Um ecos­sis­tema do Docker bem-or­ga­ni­zado ajuda a minimizar a su­per­fí­cie de ataque e a melhorar a segurança de toda a in­fra­es­tru­tura de TI.
  • Aumentar o de­sem­pe­nho: Um ambiente do Docker so­bre­car­re­gado pode afetar o de­sem­pe­nho do sistema, ao consumir recursos como CPU e memória de forma des­ne­ces­sá­ria. A limpeza regular com Docker prune libera espaço de ar­ma­ze­na­mento e aumenta a efi­ci­ên­cia da gestão e execução dos con­têi­ne­res. Isso reduz sig­ni­fi­ca­ti­va­mente os tempos de car­re­ga­mento, acelera o pro­vi­si­o­na­mento apli­ca­ções e, no geral, melhora a ca­pa­ci­dade de resposta do sistema.
  • Sim­pli­fi­car a ma­nu­ten­ção: A re­a­li­za­ção regular do Docker prune sim­pli­fica sig­ni­fi­ca­ti­va­mente a ma­nu­ten­ção do seu ambiente Docker. A remoção de recursos não uti­li­za­dos reduz a com­ple­xi­dade das tarefas de ad­mi­nis­tra­ção para de­sen­vol­ve­do­res. Além disso, é mais fácil manter o controle sobre os com­po­nen­tes Docker ativos e re­le­van­tes, o que acelera o di­ag­nós­tico e a resolução de problemas. Isso não só economiza tempo na ad­mi­nis­tra­ção, mas também permite que as equipes se con­cen­trem mais no de­sen­vol­vi­mento e apri­mo­ra­mento de suas apli­ca­ções, em vez de lidarem com recursos des­ne­ces­sá­rios.

Sintaxe do Docker prune

Você tem um ambiente Docker e deseja limpar recursos para liberar espaço de ar­ma­ze­na­mento e sim­pli­fi­car a ad­mi­nis­tra­ção? Nesse caso, basta executar o seguinte comando para utilizar o Docker prune:

docker system prune
bash

Por padrão, con­têi­ne­res parados, imagens não uti­li­za­das, redes e volumes sem uso são iden­ti­fi­ca­dos e sugeridos para limpeza. O Docker solicita sua con­fir­ma­ção para removê-los. Digite y e pressione Enter. Al­ter­na­ti­va­mente, você também pode usar a opção -f para pular a con­fir­ma­ção e executar a limpeza ime­di­a­ta­mente:

docker system prune -f
bash

Dica: É im­por­tante verificar quais recursos do Docker estão presentes no sistema antes de aplicar Docker prune. Execute os seguintes comandos para listar todos os con­têi­ne­res, 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 uti­li­za­dos.
--force, -f Realiza a limpeza sem con­fir­ma­Ã§Ã£o do usuário.
--volumes Remove volumes não uti­li­za­dos.
--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 es­pe­cí­fi­cos de recursos. Isso lhe dá a fle­xi­bi­li­dade para controlar exa­ta­mente quais recursos devem ser removidos.

Docker prune --filter

Você pode usar filtros para controlar a seleção dos recursos a serem removidos, como con­têi­ne­res, imagens, redes e volumes. Isso é es­pe­ci­al­mente útil em ambientes de de­sen­vol­vi­mento, onde muitos recursos tem­po­rá­rios podem ser criados e ra­pi­da­mente es­que­ci­dos.

A sintaxe geral do comando é:

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

Entre as prin­ci­pais 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 con­têi­ne­res 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 uti­li­za­dos 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 prin­ci­pais acima, existem também opções de filtro mais es­pe­cí­fi­cas, de­pen­dendo do tipo de recurso:

  • before e since para imagens: Filtram imagens com base na sua data de criação, antes ou desde um de­ter­mi­nado ponto no tempo
  • exited para con­têi­ne­res: Filtra con­têi­ne­res com base no status de saída (por exemplo, exited=0 para con­têi­ne­res que fi­na­li­za­ram 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 con­têi­ne­res Docker

Por padrão, o Docker não remove au­to­ma­ti­ca­mente os con­têi­ne­res depois que eles chegam ao fim do seu ciclo de vida. Portanto, é im­por­tante verificar re­gu­lar­mente os con­têi­ne­res parados e removê-los conforme ne­ces­sá­rio para liberar recursos blo­que­a­dos para con­têi­ne­res em execução. Existem duas maneiras de fazer isso.

  • docker rm: O comando docker rm serve para remover ma­nu­al­mente um ou vários con­têi­ne­res do Docker. Se você sabe exa­ta­mente quais con­têi­ne­res deseja remover, essa é a abordagem mais adequada. Você deve fornecer ex­pli­ci­ta­mente os IDs ou nomes dos con­têi­ne­res que deseja remover. Dessa forma, você pode remover apenas de­ter­mi­na­dos con­têi­ne­res do seu ambiente, sem afetar outros.

Aqui está um exemplo para excluir os con­têi­ne­res 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 con­têi­ne­res parados de uma vez só. Este método é par­ti­cu­lar­mente útil para liberar espaço ra­pi­da­mente, excluindo todos os con­têi­ne­res parados que atu­al­mente não possuem processos em execução.
docker container prune
bash

Todos os con­têi­ne­res parados serão listados, e o Docker so­li­ci­tará sua con­fir­ma­ção antes de removê-los. Isso é ex­tre­ma­mente útil em ambientes onde muitos con­têi­ne­res tem­po­rá­rios são criados e depois se tornam des­ne­ces­sá­rios.

Para a ad­mi­nis­tra­ção e ma­nu­ten­ção diária do seu ambiente Docker, é re­co­men­dá­vel usar re­gu­lar­mente o comando docker container prune para remover con­têi­ne­res parados. Isso economiza tempo e garante que recursos des­ne­ces­sá­rios não com­pro­me­tam o de­sem­pe­nho do sistema. O docker rm, por outro lado, é ideal quando você deseja remover con­têi­ne­res es­pe­cí­fi­cos de forma seletiva e con­tro­lada, seja para testes, de­sen­vol­vi­mento ou outros re­qui­si­tos es­pe­cí­fi­cos.

Remover imagens Docker

Imagens Docker são os blocos de cons­tru­ção dos con­têi­ne­res. Com o tempo, você pode acumular muitas versões e tags di­fe­ren­tes. Ao criar ou atualizar novas imagens, fre­quen­te­mente per­ma­ne­cem versões antigas ou não mais uti­li­za­das, co­nhe­ci­das como dangling ou, em português, órfãs. Essas imagens ocupam espaço no seu sistema e podem afetar o de­sem­pe­nho, es­pe­ci­al­mente quando há um grande número delas.

Com o Docker prune, você pode iden­ti­fi­car e remover imagens não mais uti­li­za­das:

docker image prune [Options]
bash

As prin­ci­pais 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 re­fe­ren­ci­a­das di­re­ta­mente.
docker image prune -a
bash
  • -f, --force: Por padrão, o Docker solicita uma con­fir­ma­ção antes que as imagens sejam realmente excluídas. Com -f ou --force, você pode ignorar essa etapa de con­fir­ma­ção e executar a limpeza ime­di­a­ta­mente.
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 ne­ces­sá­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

Cer­ti­fi­que-se de verificar quais imagens serão removidas antes de realizar a limpeza. A opção -a também pode remover imagens não uti­li­za­das que ainda possam ser ne­ces­sá­rias.

Remover volumes Docker

Volumes são per­sis­ten­tes e armazenam dados mesmo após a in­ter­rup­ção do contêiner associado. Esses volumes podem crescer ao longo do tempo e ocupar recursos des­ne­ces­sá­rios.

docker volume prune
bash

Esse comando iden­ti­fica todos os volumes que não estão mais as­so­ci­a­dos a con­têi­ne­res ativos. O Docker exibirá uma lista de volumes sugeridos para remoção. Além disso, será ne­ces­sá­rio confirmar a operação antes da exclusão de­fi­ni­tiva. Por outro lado, docker volume rm é um comando que remove es­pe­ci­fi­ca­mente volumes in­di­vi­du­ais do Docker. Isso pode ser útil quando você sabe exa­ta­mente qual volume deseja remover, in­de­pen­den­te­mente de estar sendo utilizado por um contêiner ou não. Para remover um volume Docker es­pe­cí­fico, use o comando docker volume rm seguido pelo nome ou ID do volume:

docker volume rm volume_name
bash

Cer­ti­fi­que-se de conhecer o nome exato ou o ID do volume antes de removê-lo, pois esse comando exclui per­ma­nen­te­mente os dados e não pode ser desfeito.

Remover redes Docker

No Docker, redes são um com­po­nente de co­mu­ni­ca­ção fun­da­men­tal entre con­têi­ne­res, in­de­pen­den­te­mente de estarem no mesmo host ou dis­tri­buí­dos em vários hosts. Redes Docker per­ma­ne­cem, mesmo depois que con­têi­ne­res são en­cer­ra­dos ou removidos. Com o tempo, isso pode levar ao acúmulo de redes que não são mais uti­li­za­das e ocupam recursos des­ne­ces­sá­rios. O comando docker network prune é uma maneira simples de iden­ti­fi­car 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 con­têi­ne­res ativos ou não são mais re­fe­ren­ci­a­das. Em seguida, o Docker solicita a con­fir­ma­ção antes de remover as redes.

Docker prune: Melhores práticas

  • Limpeza au­to­ma­ti­zada: Use scripts ou fer­ra­men­tas au­to­ma­ti­za­das para limpar re­gu­lar­mente imagens, con­têi­ne­res e volumes do Docker que não são mais ne­ces­sá­rios. Isso mantém o ambiente or­ga­ni­zado e otimiza o de­sem­pe­nho.
  • Patches de segurança e atu­a­li­za­ções: Cer­ti­fi­que-se de que o Docker Engine, sistemas ope­ra­ci­o­nais host e todas as imagens Docker sejam re­gu­lar­mente ve­ri­fi­ca­dos e atu­a­li­za­dos com patches de segurança para minimizar possíveis vul­ne­ra­bi­li­da­des.
  • Mo­ni­to­ra­mento e registro: Utilize fer­ra­men­tas de mo­ni­to­ra­mento e logging para acom­pa­nhar o de­sem­pe­nho dos con­têi­ne­res, detectar eventos ines­pe­ra­dos e agir pro­a­ti­va­mente na ma­nu­ten­ção.
  • Backup externo: Im­ple­mente rotinas para backups externos de dados im­por­tan­tes dos con­têi­ne­res do Docker. Isso pode ser feito através de backups regulares de bancos de dados ou arquivos de con­fi­gu­ra­ção.
  • Ve­ri­fi­ca­ção manual antes da remoção: Verifique cui­da­do­sa­mente se você não precisa mais de certos recursos antes de removê-los. Isso minimiza o risco de perda acidental de dados ou in­ter­rup­ção de processos em execução.
Dica

Se você está começando com o Docker, re­co­men­da­mos nosso tutorial Docker, sobre ins­ta­la­çã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
Ir para o menu principal