2017-04-04 18 views
0
# docker inspect blah | jq '.[] | .NetworkSettings.Ports' 
{ 
    "22/tcp": [ 
    { 
     "HostIp": "0.0.0.0", 
     "HostPort": "32776" 
    } 
    ] 
} 

如何獲得HostPort的值?我嘗試了以下,但失敗了。Docker檢查:使用jq選擇具有正斜槓的字段

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

回答

1

爲什麼不:

docker inspect --format '{{ (index (index .NetworkSettings.Ports "22/tcp") 0).HostPort }}' blah 

這將消除其他工具的需求。

+1

Thx,良好的呼叫。 – luckytaxi

2

jq支持特殊字符鍵雙引號:

jq '."22/tcp".HostPort' 

編輯:這是在the docs提到的,這還提到,你可以加上括號,以幫助可讀性,如果你想:

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