如果标签名称中包含“。”,我如何得到一个Docker镜像的标签?

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

# -*- Dockerfile -*- FROM busybox LABEL foo="bar" LABEL com.wherever.foo="bang" 

对于简单的标签名称,inspect命令有一个很好的工具 – --format选项(使用Go模板)。

 $ docker build -t foo . $ docker inspect -f '{{ .Config.Labels.foo }}' foo bar 

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

 $ docker inspect -f '{{ .Config.Labels.com.wherever.foo }}' foo <no value> 

我正在写一个bash脚本,我想避免重新parsingdocker inspect的JSON输出,如果可能的话。

index函数是我正在寻找的。 它可以在地图中查找任意string。

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