web-dev-qa-db-ja.com

docker inspectからラベル値を取得する

キーに "。"があるため、マップリストから値を取得するのに問題がありました。内部。

 docker inspect jenkins 
 ... 
 Config:{
 .. 
 "Labels":{
 "com.docker .compose.config-hash ":" 85bcf1e0bcd708120185a303e2a8d8e65543c1ec77ec0c6762fc057dc10320aa "、
" com.docker.compose.container-number ":" 1 "、
" com.docker.compose.oneoff ": "、
" com.docker.compose.project ":" new "、
" com.docker.compose.service ":" sc2 "、
" com.docker。 compose.version ":" 1.5.2 "
} 
} 
} 

地図リストを入手できます

 docker inspect -f {{.Config.Labels}} new_sc2_1 
 map [com.docker.compose.config-hash:85bcf1e0bcd708120185a303e2a8d8e65543c1ec77ec0c6762fc057dc10320aa com.docker.compose.conposeer .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>
19
Larry Cai

indexを使用して、そのキーの値を取得できます(読みやすくするためにラップされています)。

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

プロジェクトの名前が表示されます

37
thaJeztah

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
8
larsks