Saya ingin mencari tahu apakah gambar Docker dengan tag tertentu ada secara lokal. Saya baik-baik saja dengan menggunakan skrip bash jika klien Docker tidak dapat melakukan ini secara native.
Hanya untuk memberikan beberapa petunjuk untuk skrip bash potensial, hasil dari menjalankan docker images
perintah mengembalikan yang berikut:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
rabbitmq latest e8e654c05c91 5 weeks ago 143.5 MB
busybox latest 8c2e06607696 6 weeks ago 2.433 MB
rabbitmq 3.4.4 a4fbaad9f996 11 weeks ago 131.5 MB
Coba
docker inspect
, misalnya:Tetapi sekarang dengan gambar yang ada, Anda akan mendapatkan banyak informasi, misalnya:
Dan itu dalam format json yang bagus.
sumber
images
danps
perintah selalu keluar dengan 0, denganinspect
sesederhana itu:docker inspect "${image_id}:${image_tag}" > /dev/null 2>&1 || echo "does not exist!"
docker inspect
sangat bagus karena kode pengembalian bukan nol saat tidak ada gambar.docker images -q
.tldr:
Dengan cara demonstrasi ...
berhasil, gambar yang ditemukan:
kegagalan, gambar hilang:
Referensi:
https://docs.docker.com/engine/reference/commandline/image_inspect/
sumber
Anda dapat menggunakan seperti berikut:
Atau:
sumber
Dengan bantuan jawaban Vonc di atas saya membuat skrip bash berikut bernama
check.sh
:Menggunakannya untuk gambar dan tag yang ada akan dicetak
exists
, misalnya:Menggunakannya untuk gambar dan tag yang tidak ada akan dicetak
doesn't exist
, misalnya:sumber
Menggunakan
test
atau dalam satu baris
sumber
Jika Anda mencoba mencari gambar buruh pelabuhan dari registri buruh pelabuhan, saya kira cara termudah untuk memeriksa apakah gambar buruh pelabuhan hadir adalah dengan menggunakan layanan daftar Tag API REST Docker V2
Contoh:-
jika hasil di atas mengembalikan 200Ok dengan daftar tag gambar, maka kita tahu bahwa gambar itu ada
lain jika Anda melihat sesuatu seperti
maka Anda tahu pasti bahwa gambar itu tidak ada.
sumber
Dalam skrip bash saya melakukan ini untuk memeriksa apakah gambar ada dengan tag:
Contoh script di atas memeriksa apakah gambar mysql dengan tag 5.6 ada. Jika Anda hanya ingin memeriksa apakah ada gambar mysql tanpa versi tertentu maka cukup berikan nama repositori tanpa tag seperti ini:
sumber
Sedikit dari saya untuk pembaca yang sangat baik:
Membangun
Menonton
Lari
sumber
untuk nama tag tertentu
untuk "like clause" tagname: my_image_tag -> start my_ima *
Jika Anda ingin sesuatu "gambar" misalnya hapus semua gambar tag mulai "my_ima" coba ini
sumber