2016-04-06 19 views
2

Anahtarın "." Olması nedeniyle harita listesinden değer elde etmekte sorun yaşadım içeride.docker'dan etiket değeri edinin

 
docker inspect jenkins 
... 
    Config: { 
    .. 
     "Labels": { 
      "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" 
     } 
    } 
} 

ben harita listesini

 
docker inspect -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] 

alabilirsiniz Ama nasıl Sen jq için boru docker inspect çıktısını olabilir

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

cevap

13

Bundan değer elde etmek için index kullanabilirsiniz anahtar (okunabilirlik için sarılmış); Size

2

anahtar com.docker.compose.project projenin adını new alabilirsiniz. Böyle Verilen içerik:

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

beni alır:

... 
     "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" 
     } 
... 

Böyle bir birey etiket değeri çıkarabilir

postgis 
+0

büyük bir projenin adını vermelidir

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

, Emin doğrudan 'postgis' alınır? –

+1

' "' kaldırmak sadece JQ içinde '-r' bayrağını kullanmak mümkündür. –

+0

thx @SantiagoLapresta @larsks ve cevabı doğrudan -r ile güncelliyorum. –