Remova todos os contêineres com base no nome da imagem do docker

Remova todos os contêineres com base no nome da imagem do docker

Questões:
Como posso remover todos os recipientes do Docker com base em um nome de imagem do Docker. Não desejo remover todos os recipientes disponíveis, apenas os que são baseados em imagem específica. Por exemplo, eu gostaria de remover todos os recipientes com base na imagem CENTOS: 7.

Responder:
Para remover todos os recipientes do Docker com base em CENTOS: 7 Execute o seguinte comando linux:

# docker ps -a | awk 'print $ 1, $ 2' | Grep Centos: 7 | awk 'print $ 1' | Xargs -i  Docker rm  

As explicações completas de treino e tubulação podem ser encontradas abaixo.

Primeiro, precisamos obter todos os IDs de contêiner:

# Docker PS -um comando de imagem ID da imagem criada portas de status nomes 16ef47387cbd fedora: 21 "/bin/bash" 5 horas atrás saiu (0) 5 horas atrás Romantic_heisenberg 6e3e3870739 Centos: 7 "/bin/bash" 5 horas atrás (0 ) 5 horas atrás, clever_rosalind effd4037Ab74 CENTOS: 7 "/bin/bash" 5 horas atrás (0) 5 horas atrás Backstabbing_almeida 72C89AF47615 Debian: 8 "/bin/Bash" 5 horas atrás (0) 5 horas atrás 8 "/bin/bash" 5 horas atrás (0) 5 horas atrás cocky_yonath f060a5bfdb11 debian: 8 "/bin/bash" 5 horas atrás (0) 5 horas atrás 

Para evitar a confusão entre a imagem e o nome do contêiner, só podemos manter ID do contêiner e IMAGEM colunas:



# docker ps -a | Awk 'Print $ 1, $ 2' ID do contêiner 16EF47387CBD Fedora: 21 6AE3E3870739 CENTOS: 7 EFFD4037AB74 CENTOS: 7 72C89AF47615 Debian: 8 

Em seguida, podemos colocar a saída acima para o grep comando para filtrar apenas os contêineres que são baseados em um determinado nome de imagem. Por exemplo, vamos filtrar todos os recipientes com base em CENTOS: 7 imagem:

# docker ps -a | awk 'print $ 1, $ 2' | GREP CENTOS: 7 6AE3E3870739 CENTOS: 7 EFFD4037AB74 CENTOS: 7 

Neste ponto, estamos apenas interessados ​​em ID do contêiner:

# docker ps -a | awk 'print $ 1, $ 2' | Grep Centos: 7 | awk 'print $ 1' 6e3e3870739 effd4037ab74 

Por fim, podemos usar Xargs e remover os restantes de IDs de contêiner:

# docker ps -a | awk 'print $ 1, $ 2' | Grep Centos: 7 | awk 'print $ 1' | xargs -i  Docker rm  6ae3e3870739 effd4037ab74 

Tutoriais do Linux relacionados:

  • Exemplos sobre como usar o comando XARGS no Linux
  • Xargs para iniciantes com exemplos
  • Xargs com vários threads com exemplos
  • Como grep corretamente para texto em scripts de bash
  • Exemplos de uma linha do Linux Complex Bash
  • Gerenciamento de lista de processos e terminação automática de processo
  • Como montar a imagem ISO no Linux
  • Coisas para instalar no Ubuntu 20.04
  • Manipulação de big data para diversão e lucro Parte 2
  • Como renomear vários arquivos no Linux