我创建了一个标签很少的泊坞窗图片,这是我在LABELS上的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
答案 0 :(得分:2)
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
如果您需要进行更高级的处理,您可能希望直接查看Docker API images endpoint /images/IMAGE/json
或在某处处理JSON输出:
docker image inspect \
--format='{{json .Config.Labels}}' \
IMAGE
答案 1 :(得分:0)
您可以执行类似
的操作 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