Hapus semua berisi berdasarkan nama gambar Docker

Hapus semua berisi berdasarkan nama gambar Docker

Pertanyaan:
Bagaimana cara menghapus semua wadah Docker berdasarkan nama gambar Docker. Saya tidak ingin menghapus semua wadah yang tersedia, hanya yang didasarkan pada gambar tertentu. Misalnya saya ingin menghapus semua wadah berdasarkan gambar Centos: 7.

Menjawab:
Untuk menghapus semua wadah Docker berdasarkan Centos: 7 Jalankan perintah Linux berikut:

# Docker PS -A | awk 'cetak $ 1, $ 2' | Grep Centos: 7 | awk 'cetak $ 1' | xargs -i  docker rm  

Penjelasan latihan dan perpipaan lengkap dapat ditemukan di bawah.

Pertama, kita perlu mendapatkan semua ID kontainer:

# Docker PS -A Perintah ID ID Kontainer Dibuat Nama Port Status 16EF47387CBD Fedora: 21 "/bin/bash" 5 jam yang lalu keluar (0) 5 jam yang lalu romantis_heisenberg 6ae3e3870739 centos: 7 "/bin/bash" 5 jam yang lalu (0 ) 5 jam yang lalu clever_rosrosal effd4037Ab74 centos: 7 "/bin/bash" 5 jam yang lalu keluar (0) 5 jam yang lalu backstabbing_almeida 72c89af47615 debian: 8 "/bin/bash" 5 jam yang lalu (0) 5 jam yang lalu berserk_pasteur 195c: 5 jam 8 jam (0) 5 jam yang lalu berserk_pasteur 195c: 5 jam 8 jam (0) 5 jam yang lalu berserk_pasteur 195c: 5 jam: 0) 5 jam yang lalu berserk_pasteur 195c: 5 jam: 0) 5 jam Berserk_pasteur 195c. 8 "/bin/bash" 5 jam yang lalu keluar (0) 5 jam yang lalu cocky_yonath f060a5bfdb11 debian: 8 "/bin/bash" 5 jam yang lalu (0) 5 jam yang lalu gila_galileo 

Untuk menghindari kebingungan antara gambar dan nama wadah yang hanya dapat kita simpan ID Kontainer Dan GAMBAR Kolom:



# Docker PS -A | AWK 'Cetak $ 1, $ 2' ID Kontainer 16EF47387CBD FEDORA: 21 6AE3E3870739 CENTOS: 7 EFFD4037AB74 CENTOS: 7 72C89AF47615 DEBIAN: 8 195C78F3EB0B DEBAN: 8 f060a5 BB: 8BIAN: 8BIAN: 8BIAN: 8 BB: 8BIAN: 8 BB: 8BIAN: 8 BB: 8 BB: 8 BB: 8 BB: 8 BB: 8 BB: 8 BB: 8 195c78 

Selanjutnya, kita dapat menyalurkan output di atas ke grep Perintah untuk memfilter hanya wadah yang didasarkan pada nama gambar tertentu. Misalnya mari kita memfilter semua wadah berdasarkan Centos: 7 gambar:

# Docker PS -A | awk 'cetak $ 1, $ 2' | GREP Centos: 7 6AE3E3870739 CENTOS: 7 EFFD4037AB74 CENTOS: 7 

Pada titik ini kami hanya tertarik ID Kontainer:

# Docker PS -A | awk 'cetak $ 1, $ 2' | Grep Centos: 7 | awk 'cetak $ 1' 6AE3E3870739 EFFD4037AB74 

Terakhir, kita bisa menggunakan xargs dan hapus ID wadah yang tersisa:

# Docker PS -A | awk 'cetak $ 1, $ 2' | Grep Centos: 7 | awk 'cetak $ 1' | xargs -i  docker rm  6ae3e3870739 effd4037ab74 

Tutorial Linux Terkait:

  • Contoh tentang Cara Menggunakan Perintah XArgs di Linux
  • xargs untuk pemula dengan contoh
  • Xargs multi-threaded dengan contoh
  • Cara dengan benar GREP untuk teks dalam skrip bash
  • Linux Complex Bash One-Liner Contoh
  • Manajemen daftar proses dan penghentian proses otomatis
  • Cara memasang gambar iso di linux
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Manipulasi data besar untuk kesenangan dan keuntungan bagian 2
  • Cara mengganti nama beberapa file di Linux