Usuń wszystkie zawierające na podstawie nazwy obrazu Docker

Usuń wszystkie zawierające na podstawie nazwy obrazu Docker

Pytania:
Jak mogę usunąć wszystkie kontenery Docker na podstawie nazwy obrazu Dockera. Nie chcę usuwać wszystkich dostępnych kontenerów, tylko te, które są oparte na konkretnym obrazie. Na przykład chciałbym usunąć wszystkie pojemniki na podstawie obrazu Centos: 7.

Odpowiedź:
Aby usunąć wszystkie kontenery Docker na podstawie Centos: 7 Uruchom następujące polecenie Linux:

# Docker PS -a | awk 'drukuj 1 $, 2 $' | GREP CENTOS: 7 | awk 'drukuj 1 $' | xargs -i  Docker RM  

Pełne wyjaśnienia treningowe i rurowe można znaleźć poniżej.

Najpierw musimy uzyskać wszystkie identyfikatory kontenera:

# Docker PS -A Polecenie obrazu ID kontenera Utworzone porty statusu Nazwy 16EF47387CBD Fedora: 21 "/bin/bash" 5 godzin temu wyjście (0) 5 godzin temu Romantic_heisenberg 6AE3E3870739 Centos: 7 "/bin/bash" 5 godzin temu opuścił (0 ) 5 godzin temu Clever_RosalInd EffD4037AB74 Centos: 7 "/bin/bash" 5 godzin temu Wyjdź (0) 5 godzin temu Backstabbing_almeida 72c89Af47615 Debian: 8 "/bin/bin/bash" 5 godzin temu Wyjdź (0) 5 godzin temu Berserk_pasteur 195c78f3eb0b Debian/Bash "5 godzin temu Wyjdź (0) 5 godzin Berserk_pasteur 195C78F3EB0B 8 "/bin/bash" 5 godzin temu Wyjdź (0) 5 godzin temu Cocky_yonath F060A5BFDB11 Debian: 8 "/Bin/Bash" 5 godzin temu Wyjdź (0) 5 godzin temu Insane_galileo 

Aby uniknąć zamieszania między obrazem a nazwą kontenera, możemy tylko zachować Identyfikator kontenera I OBRAZ Kolumny:



# Docker PS -a | AWK 'druk 1 $, 2 $ ID kontener 16EF47387CBD Fedora: 21 6AE3E3870739 Centos: 7 EFFD4037AB74 CENTOS: 7 72C89AF47615 Debian: 8 195C78F3EB0B Debian: 8 F060a5bfdb11: 8 

Następnie możemy przewrócić powyższe wyjście do Grep polecenie filtrowania tylko tych kontenerów opartych na określonej nazwie obrazu. Na przykład filtrujmy wszystkie pojemniki na podstawie Centos: 7 obraz:

# Docker PS -a | awk 'drukuj 1 $, 2 $' | Grep Centos: 7 6E3E3870739 CentoS: 7 EFFD4037AB74 CENTOS: 7 

W tym momencie jesteśmy zainteresowani Identyfikator kontenera:

# Docker PS -a | awk 'drukuj 1 $, 2 $' | GREP CENTOS: 7 | AWK 'Print 1 $' 6AE3E3870739 EFFD4037AB74 

Na koniec możemy użyć Xargs i usuń pozostały identyfikator kontenera:

# Docker PS -a | awk 'drukuj 1 $, 2 $' | GREP CENTOS: 7 | awk 'drukuj 1 $' | Xargs -i  Docker RM  6AE3E3870739 EFFD4037AB74 

Powiązane samouczki Linux:

  • Przykłady, jak używać polecenia XARGS w Linux
  • Xargs dla początkujących z przykładami
  • Wielokrotne Xarg z przykładami
  • Jak poprawnie grep do tekstu w skryptach bash
  • Kompleks Linux Bash One-Liner Przykłady
  • Zarządzanie listami procesowymi i automatyczne rozwiązanie procesu
  • Jak montować obraz ISO na Linux
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Manipulacja Big Data dla zabawy i zysku Część 2
  • Jak zmienić nazwę wielu plików na Linux