Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengakses Label Imej Docker dengan Titik dalam Namanya Menggunakan Perintah `inspect`?

Bagaimana untuk Mengakses Label Imej Docker dengan Titik dalam Namanya Menggunakan Perintah `inspect`?

Patricia Arquette
Patricia Arquetteasal
2024-11-14 17:39:02253semak imbas

How to Access Docker Image Labels with Dots in Their Names Using the `inspect` Command?

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 pilihan --format:

$ 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 templat Go:

$ docker inspect -f '{{ index .Config.Labels "com.wherever.foo" }}' foo

Ini akan mengeluarkan nilai label yang dikehendaki, "bang".

Indeks fungsi mencari rentetan sewenang-wenang dalam peta dan mengembalikan nilai yang sepadan jika dijumpai. 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn