Docker inspect:使用jq选择具有斜杠的字段

3
# docker inspect blah | jq '.[] | .NetworkSettings.Ports'
{
    "22/tcp": [
     {
       "HostIp": "0.0.0.0",
       "HostPort": "32776"
     }
    ]
}

我该如何获取HostPort的值?我尝试了以下方法,但都失败了。

# docker inspect blah | jq '.[] | .NetworkSettings.Ports.22\/tcp.HostPort'
3个回答

3

jq支持在键中使用双引号来表示特殊字符:

jq '."22/tcp".HostPort'

编辑: 在文档中提到了这一点,文档还提到如果需要可以添加括号以帮助阅读:

jq '.["22/tcp"].HostPort'

2
为什么不呢:
docker inspect  --format '{{ (index (index .NetworkSettings.Ports "22/tcp") 0).HostPort }}' blah

这将消除对另一个工具的需求。

0

上面的答案接近正确,但需要添加一个括号才能正常工作。

jq '."22/tcp"[].HostPort'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接