Docker
ventana acoplable inspeccionar diversos campos para clave: valor y elementos de la lista
Buscar..
varios ejemplos de inspeccionar ventana acoplable
Encuentro que los ejemplos en la docker inspect
la docker inspect
parecen mágicos, pero no explican mucho.
La inspección de Docker es importante porque es la forma limpia de extraer información de una docker inspect -f ... container_id
contenedores en ejecución docker inspect -f ... container_id
(o todo el contenedor corriendo)
docker inspect -f ... $(docker ps -q)
evitando algunos poco fiables
docker command | grep or awk | tr or cut
Cuando docker inspect
una docker inspect
, puede obtener los valores del "nivel superior" fácilmente, con una sintaxis básica como, para un contenedor que ejecuta htop (desde https://hub.docker.com/r/jess/htop/) con un pid ae1
docker inspect -f '{{.Created}}' ae1
Puede mostrar
2016-07-14T17:44:14.159094456Z
o
docker inspect -f '{{.Path}}' ae1
Puede mostrar
htop
Ahora si extraigo una parte de mi docker inspect
Veo
"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"
Así que obtengo un diccionario, Como tiene { ...}
y muchas claves: valores.
Entonces el comando
docker inspect -f '{{.State}}' ae1
devolverá una lista, como
{running true false false false false 4525 0 2016-07-14T17:44:14.406286293Z 0001-01-01T00:00:00Z}
Puedo obtener el valor de State.Pid fácilmente
docker inspect -f '{{ .State.Pid }}' ae1
yo obtengo
4525
A veces, la ventana acoplable inspecciona da una lista ya que comienza con [
y termina con ]
Otro ejemplo, con otro contenedor.
docker inspect -f '{{ .Config.Env }}' 7a7
da
[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]
Para obtener el primer elemento de la lista, agregamos el índice antes del campo requerido y 0 (como primer elemento) después, por lo que
docker inspect -f '{{ index ( .Config.Env) 0 }}' 7a7
da
DISPLAY=:0
Obtenemos el siguiente elemento con 1 en lugar de 0 utilizando la misma sintaxis
docker inspect -f '{{ index ( .Config.Env) 1 }}' 7a7
da
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Podemos obtener el número de elementos de esta lista.
docker inspect -f '{{ len .Config.Env }}' 7a7
da
9
Y podemos obtener el último elemento de la lista, la sintaxis no es fácil.
docker inspect -f “{{ index .Config.Cmd $[$(docker inspect –format '{{ len .Config.Cmd }}' $CID)-1]}}” 7a7