web-dev-qa-db-fra.com

obtenir la valeur d'étiquette de docker inspect

J'ai eu un problème pour obtenir la valeur de la liste de cartes en raison de la clé "." à l'intérieur.

 docker inspecter jenkins 
 ... 
 Config: {
 .. 
 "Étiquettes": {
 "com.docker .compose.config-hash ":" 85bcf1e0bcd708120185a303e2a8d8e65543c1ec77ec0c6762fc057dc10320aa ", 
" com.docker.compose.container-number ":" 1 ", 
" com.doffer " ", 
" com.docker.compose.project ":" nouveau ", 
" com.docker.compose.service ":" sc2 ", 
" com.docker. compose.version ":" 1.5.2 "
} 
} 
} 

Je peux obtenir la liste des cartes

 docker inspect -f {{.Config.Labels}} new_sc2_1 
 map [com.docker.compose.config-hash: 85bcf1e0bcd708120185a303e2a8d8e65543c1ec77ec0c6762fc057dcerer com.container.com com.decerer.com com.decerer.com com.decerer.com com.decerer.com com.decerer.com com.decerer com.com: 1 .compose.oneoff: False com.docker.compose.project: new com.docker.compose.service: sc2 com.docker.compose.version: 1.5.2] 

Mais comment puis-je obtenir le nom du projet new à partir de la clé com.docker.compose.project

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

Vous pouvez utiliser index pour obtenir la valeur de cette clé (encapsulée pour la lisibilité);

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

Cela devrait vous donner le nom du projet

37
thaJeztah

Vous pouvez diriger la sortie de docker inspect à jq. Étant donné un contenu comme celui-ci:

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

Je peux extraire une valeur d'étiquette individuelle comme ceci:

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

Ce qui me fait:

postgis
8
larsks