Docker é um dos produtos mais populares nas organizações hoje em dia. Ele torna o processo de gerenciamento de aplicações em containers muito fácil. O Docker oferece portabilidade, desempenho, agilidade, escalabilidade e isolamento para as aplicações, pois utiliza containers. Os containers são mais portáteis e exigem menos recursos do que as máquinas virtuais. À medida que você trabalha com o Docker, tende a acumular um número excessivo de imagens, volumes e containers não utilizados. Esses recursos vão poluir a saída e consumir muito espaço em disco. Neste tutorial, você aprenderá como limpar os recursos do Docker e organizar seu servidor.
Limpar tudo
Você pode limpar todos os recursos do Docker, incluindo imagens, containers parados, volumes e redes com um único comando. Você pode escolher uma das opções abaixo:
Referência: Recursos órfãos (dangling) são aqueles que não estão relacionados a nenhum container em execução.
Opção 1:
|
1 |
docker system prune |
– todos os containers parados
– todas as redes não utilizadas por pelo menos um container
– todas as imagens órfãs
– todo o cache de compilação órfão
Opção 2:
|
1 |
docker system prune -a |
– todos os containers parados
– todas as redes não utilizadas por pelo menos um container
– todas as imagens sem pelo menos um container associado a elas
– todo o cache de compilação
Opção 3:
|
1 |
docker system prune -a --volumes |
– todos os containers parados
– todas as redes não utilizadas por pelo menos um container
– todos os volumes não utilizados por pelo menos um container
– todas as imagens sem pelo menos um container associado a elas
– todo o cache de compilação

Removendo imagens do Docker
Para remover uma imagem específica, você precisa saber o ID da imagem. Você pode encontrar o ID da imagem de um container Docker usando o comando “docker images”, conforme explicado em nosso tutorial sobre como instalar & operar o Docker no Ubuntu.
Listar imagens:
|
1 |
docker images |
Remover imagem:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
docker rmi <Imagem ID> Exemplo: docker rmi 1d622ef86b13 Saída: Untagged: ubuntu:latest Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7 Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01 Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3 Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47 Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387 Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f |
Removendo imagens órfãs (dangling):
Quando você compila uma imagem Docker, ela geralmente possui várias camadas de imagens. Imagens órfãs (dangling) são as camadas que não possuem nenhuma relação com nenhuma imagem tagueada. Imagens órfãs consomem espaço em disco, mas não servem para nada. Elas podem ser listadas usando o comando:
|
1 |
docker images -f dangling=true |
Você pode remover essas imagens executando o seguinte comando:
|
1 |
docker image prune |
Removendo imagens com base em um padrão
Você pode encontrar facilmente imagens com base em um padrão específico usando o comando “grep” e depois removê-las passando-as para o comando “docker rmi” usando o “awk”. Você pode usar os seguintes comandos e substituir o “padrão” em cada um deles:
Listar:
|
1 |
docker images -a | grep "padrão" |
Remover:
|
1 |
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi |
Remover todas as imagens
Você pode listar todas as imagens do docker usando o comando:
|
1 |
docker images -a |
Depois de decidir remover todas elas, você pode usar este comando para excluí-las todas:
|
1 |
docker images -a -q | xargs docker rmi |
Removendo contêineres:
Agora que você limpou todas as imagens desnecessárias, é hora de excluir alguns dos contêineres que não são necessários.
Para listar os contêineres, você pode usar o comando:
|
1 |
docker ps -a |
Para remover os contêineres, use o comando:
|
1 |
docker rm <<Container Name/Container ID>> |
Executando contêineres temporariamente
Se você quiser executar o contêiner apenas uma vez, pode optar por excluí-lo automaticamente assim que ele for encerrado. Você pode fazer isso usando o comando:
|
1 |
docker run --rm <<ImageName>> |
Removendo contêineres finalizados
Você pode filtrar os contêineres finalizados usando o argumento “-f”. Liste os contêineres finalizados usando o comando:
|
1 |
docker ps -a -f status=exited |
Agora que você os filtrou, remova-os usando este comando:
|
1 |
docker rm $(docker ps -a -f status=exited -q) |
Removendo contêineres com base em um padrão
Você pode encontrar facilmente contêineres com base em um padrão específico usando o comando “grep” e, em seguida, removê-los passando-os para o comando “docker rm” usando “awk”. Você pode usar os seguintes comandos e substituir o “pattern” em cada um deles.
Listar:
|
1 |
docker ps -a | grep "pattern" |
Remover:
|
1 |
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm |
Parar e remover todos os contêineres
Antes de fazer isso, revise todos os contêineres em seu servidor listando-os. Somente quando tiver certeza de que deseja excluí-los, execute os seguintes comandos:
Liste os contêineres para revisar:
|
1 |
docker ps -a |
Parar e remover:
|
1 2 |
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) |
Removendo volumes
Remover um volume específico
Para remover um volume específico, você precisa saber o nome do volume. Para descobrir isso, você pode listar os volumes.
Listar:
|
1 |
docker volume ls |
Remover:
|
1 |
docker volume rm <<VolumeName>> |
Remover volumes órfãos
Quando você remove um contêiner, o volume anexado a ele não é removido automaticamente. Esse volume é chamado de volume órfão (dangling). Para localizar esses volumes, use o argumento de filtro no comando:
|
1 |
docker volume ls -f dangling=true |
Para remover todos esses volumes órfãos, use o comando:
|
1 |
docker volume prune |
Remover um contêiner e seu volume sem nome
Se você criou um volume anônimo ou sem nome ao executar o contêiner, poderá removê-lo junto com o contêiner usando um único comando. No entanto, se o volume for nomeado, apenas o contêiner será excluído.
|
1 |
docker rm -v <<ContainerName>> |
Agora que você tem esta folha de dicas (cheat sheet), deve estar pronto para limpar os recursos do Docker que não são necessários em seu servidor.
Boa computação!


Comentários
Nenhum comentário ainda. Seja o primeiro.