Docker
docker inspecte l'obtention de différents champs pour la clé: valeur et éléments de la liste
Recherche…
divers docker inspecter des exemples
Je trouve que les exemples dans le docker inspect
documentation semblent magiques, mais n'expliquent pas beaucoup.
Docker inspect est important car il s'agit de la manière propre d'extraire des informations d'un conteneur docker inspect -f ... container_id
cours d'exécution docker inspect -f ... container_id
(ou tout conteneur en cours d'exécution)
docker inspect -f ... $(docker ps -q)
éviter certains peu fiables
docker command | grep or awk | tr or cut
Lorsque vous lancez un docker inspect
vous pouvez facilement obtenir les valeurs du "niveau supérieur", avec une syntaxe de base comme pour un conteneur exécutant htop (à partir de https://hub.docker.com/r/jess/htop/). avec un pid ae1
docker inspect -f '{{.Created}}' ae1
peut montrer
2016-07-14T17:44:14.159094456Z
ou
docker inspect -f '{{.Path}}' ae1
peut montrer
htop
Maintenant, si j'extrais une partie de mon docker inspect
je vois
"State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 4525, "ExitCode": 0, "Error": "", "StartedAt": "2016-07-14T17:44:14.406286293Z", "FinishedAt": "0001-01-01T00:00:00Z"
Je reçois donc un dictionnaire, comme il a { ...}
et beaucoup de clé: valeurs
Donc la commande
docker inspect -f '{{.State}}' ae1
renverra une liste, telle que
{running true false false false false 4525 0 2016-07-14T17:44:14.406286293Z 0001-01-01T00:00:00Z}
Je peux obtenir la valeur de State.Pid facilement
docker inspect -f '{{ .State.Pid }}' ae1
Je reçois
4525
Parfois, docker inspecter donne une liste car elle commence par [
et se termine par ]
un autre exemple, avec un autre conteneur
docker inspect -f '{{ .Config.Env }}' 7a7
donne
[DISPLAY=:0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LANG=fr_FR.UTF-8 LANGUAGE=fr_FR:en LC_ALL=fr_FR.UTF-8 DEBIAN_FRONTEND=noninteractive HOME=/home/gg WINEARCH=win32 WINEPREFIX=/home/gg/.wine_captvty]
Afin d’obtenir le premier élément de la liste, nous ajoutons index avant le champ requis et 0 (comme premier élément) après, donc
docker inspect -f '{{ index ( .Config.Env) 0 }}' 7a7
donne
DISPLAY=:0
Nous obtenons l'élément suivant avec 1 au lieu de 0 en utilisant la même syntaxe
docker inspect -f '{{ index ( .Config.Env) 1 }}' 7a7
donne
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Nous pouvons obtenir le nombre d'éléments de cette liste
docker inspect -f '{{ len .Config.Env }}' 7a7
donne
9
et nous pouvons obtenir le dernier élément de la liste, la syntaxe n'est pas facile
docker inspect -f “{{ index .Config.Cmd $[$(docker inspect –format '{{ len .Config.Cmd }}' $CID)-1]}}” 7a7