Eliminar todos los contenidos basados ​​en el nombre de la imagen de Docker

Eliminar todos los contenidos basados ​​en el nombre de la imagen de Docker

Preguntas:
¿Cómo puedo eliminar todos los contenedores Docker en función del nombre de la imagen de Docker?. No deseo eliminar todos los contenedores disponibles, solo los que se basan en una imagen particular. Por ejemplo, me gustaría eliminar todos los contenedores en función de la imagen CentOS: 7.

Respuesta:
Para eliminar todos los contenedores de Docker basados ​​en CentOS: 7 Ejecute el siguiente comando Linux:

# Docker PS -A | Awk 'imprimir $ 1, $ 2' | Grep Centos: 7 | Awk 'imprimir $ 1' | xargs -i  Docker RM  

El entrenamiento completo y las explicaciones de la tubería se pueden encontrar a continuación.

Primero, necesitamos obtener todas las identificaciones de contenedor:

# Docker PS -A Comando de ID de ID de contenedor Nombres de puertos de estado creados 16EF47387CBD Fedora: 21 "/bin/bash" hace 5 horas salidas (0) hace 5 horas ) Hace 5 horas Clever_Rosalind Effd4037ab74 CentOS: 7 "/bin/bash" hace 5 horas salidas (0) hace 5 horas Backstabbing_almeida 72c89af47615 Debian: 8 "/bin/bash" hace 5 horas salidas (0) hace 5 horas berserk_pastur 195c78f3b0b de Debian: 8 "/bin/bash" hace 5 horas salidas (0) hace 5 horas Cocky_yonath f060a5bfdb11 Debian: 8 "/bin/bash" hace 5 horas salidas (0) hace 5 horas Insane_galileo 

Para evitar la confusión entre la imagen y el nombre del contenedor, solo podemos mantener ID de contenedor y IMAGEN columnas:



# Docker PS -A | AWK 'imprima $ 1, $ 2' Contenedor ID 16EF47387CBD Fedora: 21 6AE3E3E3870739 Centos: 7 Effd4037ab74 CentOS: 7 72C89AF47615 Debian: 8 195C78F3EB0B DEBIAN: 8 F060A5BFDB11 DEBIAN: 8 

A continuación, podemos llevar la salida anterior al grep Comandar solo filtrar aquellos contenedores que se basan en un nombre de imagen determinado. Por ejemplo, filtremos todos los contenedores basados ​​en CentOS: 7 imagen:

# Docker PS -A | Awk 'imprimir $ 1, $ 2' | GREP Centos: 7 6AE3E3870739 CentOS: 7 Effd4037ab74 CentOS: 7 

En este punto solo estamos interesados ​​en ID de contenedor:

# Docker PS -A | Awk 'imprimir $ 1, $ 2' | Grep Centos: 7 | AWK 'imprimir $ 1' 6AE3E3870739 Effd4037ab74 

Por último, podemos usar Xargs y eliminar las ID de contenedor restantes:

# Docker PS -A | Awk 'imprimir $ 1, $ 2' | Grep Centos: 7 | Awk 'imprimir $ 1' | xargs -i  Docker RM  6AE3E3870739 Effd4037ab74 

Tutoriales de Linux relacionados:

  • Ejemplos sobre cómo usar el comando XARGS en Linux
  • Xargs para principiantes con ejemplos
  • XARGS multiprocesado con ejemplos
  • Cómo Grep Correntemente para el texto en scripts bash
  • Ejemplos de Linux Complex Bash One-Liner
  • Gestión de la lista de procesos y terminación automática de procesos
  • Cómo montar la imagen ISO en Linux
  • Cosas para instalar en Ubuntu 20.04
  • Manipulación de Big Data para diversión y ganancias Parte 2
  • Cómo cambiar el nombre de múltiples archivos en Linux