Neste artigo vou apresentar os principais comandos Docker para limpar contêineres, imagens e volumes. |
Se você não conhece o Docker sugiro que acompanhe a série de artigos : Docker uma introdução básica
A facilidade em criar contêineres, imagens e volumes pode poluir o seu ambiente, e, em um momento você vai precisar fazer um limpeza removendo os recursos que não serão mais utilizados.
|
Vejamos quais os principais comandos que podemos usar para limpar o nosso ambiente do Docker.
Exibindo os recursos do ambiente
A primeira coisa a fazer é identificar os recursos, contêiners, imagens, volumes
e redes existentes no seu ambiente Docker.
Para isso podemos usar os seguintes comandos :
docker container ls | Lista os contêineres que estão em execução. (docker ps) |
docker container ls -a | Lista todos os contêineres. (docker ps -a) |
docker image ls | Lista as imagens (docker images) |
docker volume ls | Lista os volumes |
docker network ls | Lista as redes |
docker info | Lista a quantidade de contêineres e imagens e informações do ambiente |
Dessa forma temos contêineres que pode estar em execução e os que estão parados, e, temos também imagens não usadas, imagens que foram usadas para criar contêineres e imagens pendentes que não possuem relacionamento com nenhuma imagem tagueada.(as dangling images).
Uma imagem não usada significa que ela não foi atribuída ou usada em um contêiner. Por outro lado, uma imagem pendente significa que você criou um novo build da imagem, mas não recebeu um novo nome.
Então as velhas imagens que você tem se tornam a "imagem pendente". Essas imagens antigas são aquelas sem tag e exibem "<none>" em seu nome quando você executa o comando : docker images
Removendo todos os recursos
O Docker oferece um comando conveniente
para remover contêineres , networks e imagens não
usadas :
docker system prune
Este comando remove :
Note que é solicitada a confirmação para continuar o processamento [y/N].
Para remover também os volumes e imagens não utilizadas e sobrescrever o prompt de confirmação podemos usar o comando:
docker system prune --all --force --volumes
Este comando remove:
E não solicita confirmação. Portanto cuidado ao user o comando.
Também podemos aplicar o comando prune a cada recurso individualmente.
Assim:
Removendo recursos
individualmente
Outra opção é remover cada recurso individualmente. Para isso podemos usar os
seguintes comandos:
Remove o recurso identificado pelo <id> ou nome especificado.
Para containeres, imagens e volumes temos ainda a opção -f que força a remoção do recurso.
Essa abordagem é mais segura, mas dependendo da quantidade de recursos, terá que ser repetida várias vezes.
Podemos ainda usar uma combinação de comandos para remover mais de um recurso de uma vez.
Onde:
-a : signfica todos os recursos
-q : significa o
ID numérico do
recurso
Assim, para parar todos os contêineres podemos usar o comando:
docker container stop $(docker container ls -a -q)
E podemos também vincular dois comandos para limpar todo o ambiente:
docker container stop $(docker container ls -a -q) && docker system prune -a -f --volumes
Dessa forma, você têm essas opções para limpar o seu ambiente, podendo também criar scripts com combinação de comandos para serem executados automaticamente.
(Disse Jesus) - "Então
aparecerá no céu o sinal do Filho do homem; e todas as
tribos da terra se lamentarão, e verão o Filho do homem,
vindo sobre as nuvens do céu, com poder e grande
glória."
Mateus 24:30
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Entity Framework - Conceitos Básicos - Uma visão geral - Macoratti
ASP .NET Core - Acesso ao MySQL c/ EF Core usando o Docker no Linux - I
https://docs.docker.com/engine/reference/commandline/system_prune/
https://docs.docker.com/engine/reference/commandline/container_prune/