Docker - Limpando contêineres, imagens e volumes

 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:


José Carlos Macoratti