Mengakses Label Imej Docker dengan Titik dalam Nama
Arahan pemeriksaan Docker menyediakan cara yang mudah untuk mendapatkan semula label imej kontena. Walau bagaimanapun, mengekstrak label dengan titik dalam namanya menggunakan pilihan --format dan templat Go boleh terbukti mencabar.
Isu:
Imej Docker berikut mentakrifkan dua label:
FROM busybox LABEL foo="bar" LABEL com.wherever.foo="bang"
Menggunakan arahan inspect dengan --format pilihan:
$ docker inspect -f '{{ .Config.Labels.foo }}' foo
mengembalikan nilai untuk label "foo" dengan betul. Walau bagaimanapun, cuba mengakses label dengan titik dalam namanya:
$ docker inspect -f '{{ .Config.Labels.com.wherever.foo }}' foo
menghasilkan "
Penyelesaian:
Untuk mendapatkan semula label dengan titik dalam namanya, gunakan fungsi indeks dalam Go templat:
$ docker inspect -f '{{ index .Config.Labels "com.wherever.foo" }}' foo
Ini akan mengeluarkan nilai label yang dikehendaki, "bang".
Fungsi indeks mencari rentetan arbitrari dalam peta dan mengembalikan nilai yang sepadan jika ditemui. Dengan menentukan nama label sebagai parameter kedua, fungsi mendapatkan semula nilai yang berkaitan daripada peta Label bagi objek Config.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Label Imej Docker dengan Titik dalam Namanya Menggunakan Perintah `inspect`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!