如果标签名称为".",我如何获得Docker镜像标签?在里面?

lee*_*777 19 templates go docker

docker inspect命令对于获取Docker镜像上的标签非常有用:

# -*- Dockerfile -*-
FROM busybox
LABEL foo="bar"
LABEL com.wherever.foo="bang"
Run Code Online (Sandbox Code Playgroud)

对于简单的标签名称,inspect命令有一个--format选项(使用Go模板)可以很好地工作.

$ docker build -t foo .
$ docker inspect -f '{{ .Config.Labels.foo }}' foo
bar
Run Code Online (Sandbox Code Playgroud)

但是如何访问名称中带有点的标签?

$ docker inspect -f '{{ .Config.Labels.com.wherever.foo }}' foo
<no value>
Run Code Online (Sandbox Code Playgroud)

我正在用bash脚本编写这个docker inspect,如果可能的话,我想避免重新解析JSON输出.

lee*_*777 29

这个index功能正是我想要的.它可以在地图中查找任意字符串.

$ docker inspect -f '{{ index .Config.Labels "com.wherever.foo" }}' foo
bang
Run Code Online (Sandbox Code Playgroud)

  • 如果其他人有这个问题,在Windows Powershell中我必须在双引号之前添加反斜杠或反引号,两者似乎都有效.否则我得到错误**函数"com"未定义**`$ docker inspect -f'{{index .Config.Labels \"com.wherever.foo \"}}'foo bang` (2认同)