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



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow