# 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'
答案 0 :(得分:2)
jq
支持带有特殊字符的键的双引号:
jq '."22/tcp".HostPort'
编辑:the docs中提到了这一点,如果您愿意,还可以提及您可以添加括号以帮助提高可读性:
jq '.["22/tcp"].HostPort'
答案 1 :(得分:1)
为什么不:
docker inspect --format '{{ (index (index .NetworkSettings.Ports "22/tcp") 0).HostPort }}' blah
这将消除其他工具的需求。
答案 2 :(得分:0)
以上答案很接近,但需要添加一个括号才能正常工作。
jq '."22/tcp"[].HostPort'