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