从docker检查标签值检查

由于密钥有“。”,导致我从地图列表中获取值。 内。

docker检查jenkins
 ...
  configuration:{
   ..
       “标签”: {
             “com.docker.compose.config-hash”:“85bcf1e0bcd708120185a303e2a8d8e65543c1ec77ec0c6762fc057dc10320aa”,
             “com.docker.compose.container-number”:“1”,
             “com.docker.compose.oneoff”:“False”,
             “com.docker.compose.project”:“new”,
             “com.docker.compose.service”:“sc2”,
             “com.docker.compose.version”:“1.5.2”
         }
     }
 }

我可以得到地图列表

docker检查-f {{.Config.Labels}} new_sc2_1
 map [com.docker.compose.config-hash:85bcf1e0bcd708120185a303e2a8d8e65543c1ec77ec0c6762fc057dc10320aa com.docker.compose.container-number:1 com.docker.compose.oneoff:False com.docker.compose.project:new com.docker.compose.service: sc2 com.docker.compose.version:1.5.2]

但是,我怎样才能从关键com.docker.compose.project new的项目名称

 docker inspect -f {{.Config.Labels.com.docker.compose.project}} new_sc2_1 <no value> 

您可以使用index来获取该键的值(包装为了可读性);

 docker inspect \ --format "{{ index .Config.Labels \"com.docker.compose.project\"}}" \ new_sc2_1 

这应该给你的项目的名称

您可以将docker inspect的输出传递给jq 。 给定像这样的内容:

 ... "Labels": { "com.docker.compose.config-hash": "a804d541a5828f4aaf17df862b650e58ac5bae77b70ff5ebdb2f0f3682326954", "com.docker.compose.container-number": "1", "com.docker.compose.oneoff": "False", "com.docker.compose.project": "postgis", "com.docker.compose.service": "postgis", "com.docker.compose.version": "1.7.0rc1" } ... 

我可以像这样提取一个单独的标签值:

 docker inspect mycontainer | jq -r '.[0].Config.Labels["com.docker.compose.project"]' 

哪个让我:

 postgis