2016-04-06 5 views
2

Ich hatte Probleme, den Wert aus der Map-Liste zu bekommen, weil der Schlüssel "." Innerhalb.label value von docker inspect

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

Ich kann Kartenliste

 
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] 

bekommen Aber wie kann ich den Projektnamen new von Schlüssel com.docker.compose.project

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

Antwort

13

Sie können index verwenden, um den Wert dieses zu erhalten Schlüssel (zur besseren Lesbarkeit eingepackt);

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

Das sollten Sie den Namen des Projekts

2

Sie könnten die Ausgabe des docker inspect zu jq bekommen. Gegeben Inhalt wie folgt aus:

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

Ich kann ein individuelles Label Wert wie folgt extrahieren:

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

Was mich bekommt:

postgis 
+0

große geben, ist es möglich, '" 'zu entfernen direkt zu erhalten' postgis'? –

+1

Sicher, benutzen Sie einfach die '-r' Flagge in jq. –

+0

thx @SantiagoLapresta @larsks Und ich aktualisiere die Antwort mit '-r' direkt. –