泊坞窗,查看:如何从范围
只选择某些键我创建了一个具有几个标签的码头工人的形象,这里是在标签上我的Dockerfile部分:泊坞窗,查看:如何从范围
grep LABEL Dockerfile
LABEL "css1"="/var/www/css1"
LABEL "css2"="/var/www/css2"
LABEL "img"="/var/www/img"
LABEL "js"="/var/www/js"
然后:
docker image inspect --format='{{.Config.Labels}}' labels-test
map[css1:/var/www/css1 css2:/var/www/css2 img:/var/www/img js:/var/www/js]
我需要例如以 css开头的所有标签。这是因为就我能推算:
docker image inspect --format='{{range $k,$v:=.Config.Labels}}{{$k}}:{{$v}} {{end}}' labels-test
css1:/var/www/css1 css2:/var/www/css2 img:/var/www/img js:/var/www/js
所需的输出将是:
css1:/var/www/css1 css2:/var/www/css2
的Go template functions are available in golang docco
eq
可以测试是否arg1
== arg2
。 printf "%.3s" $k
会给你一个字符串的前3个字符。
docker image inspect \
--format='{{ range $k,$v:=.Config.Labels }}{{ if eq (printf "%.3s" $k) "css" }}{{ $k }}:{{ $v }} {{end}}{{end}}' \
IMAGE
,如果你需要做任何更高级的处理你可能想看看泊坞窗API images endpoint/images/IMAGE/json
直接查询或地方处理JSON输出:
docker image inspect \
--format='{{json .Config.Labels}}' \
IMAGE
你可以这样做
docker inspect --format='{{index (index (.Config.Labels)).css1 }}' labels-test
这显示了我
/var/www/css1
也
docker inspect --format='{{index (index (.Config.Labels)).css2 }}' labels-test
这显示了我
/var/www/css2
见在这个问题上我以前的答案 How to get ENV variable when doing Docker Inspect
编辑
以下给出正是你问
docker inspect --format='{{index (index (.Config.Labels)).css1 }} {{index (index (.Config.Labels)).css2 }} labels-test
什么,因为我得到
/var/www/css1 /var/www/css2
我试图在开始时使用索引,但可以找出如何做css *例如: docker image inspect --format'{{index.Config.Labels“css”}}'labels-test – fflost
可这个手柄的正则表达式不知何故? – fflost
不是我所知道的,但我不知道Go的全部。如果您有权访问Go代码,那么可以添加自定义函数,但看起来像Docker为'--format'提供的任何内容一样。 – Matt
我怎样才能得到匹配的条目数量(从我的例子期望的输出将是2)? – fflost