Docker
doker sprawdza pobieranie różnych pól dla klucza: wartości i elementów listy
Szukaj…
różne przykłady dokerów sprawdzają
Uważam, że przykłady w docker inspect
dokumentację wydają się magiczne, ale niewiele wyjaśniają.
Kontrola dokowania jest ważna, ponieważ jest to czysty sposób na wyodrębnienie informacji z działającego okna dokowanego kontenera docker inspect -f ... container_id
(lub cały działający kontener)
docker inspect -f ... $(docker ps -q)
unikanie niektórych zawodnych
docker command | grep or awk | tr or cut
Po uruchomieniu docker inspect
można łatwo uzyskać wartości z „najwyższego poziomu”, używając podstawowej składni, np. Dla kontenera z uruchomionym htopem (od https://hub.docker.com/r/jess/htop/) z pid ae1
docker inspect -f '{{.Created}}' ae1
może pokazać
2016-07-14T17:44:14.159094456Z
lub
docker inspect -f '{{.Path}}' ae1
może pokazać
htop
Teraz, jeśli wyodrębnię część mojego docker inspect
Widzę
"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"
Więc otrzymuję słownik, ponieważ ma { ...}
i wiele kluczowych: wartości
Więc polecenie
docker inspect -f '{{.State}}' ae1
zwróci listę, taką jak
{running true false false false false 4525 0 2016-07-14T17:44:14.406286293Z 0001-01-01T00:00:00Z}
Z łatwością mogę uzyskać wartość State.Pid
docker inspect -f '{{ .State.Pid }}' ae1
dostaję
4525
Czasami inspekcja dokera podaje listę, która zaczyna się od [
i kończy ]
inny przykład z innym pojemnikiem
docker inspect -f '{{ .Config.Env }}' 7a7
daje
[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]
Aby uzyskać pierwszy element listy, dodajemy indeks przed wymaganym polem i 0 (jako pierwszy element) po nim, więc
docker inspect -f '{{ index ( .Config.Env) 0 }}' 7a7
daje
DISPLAY=:0
Otrzymujemy następny element z 1 zamiast 0 przy użyciu tej samej składni
docker inspect -f '{{ index ( .Config.Env) 1 }}' 7a7
daje
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Możemy uzyskać liczbę elementów tej listy
docker inspect -f '{{ len .Config.Env }}' 7a7
daje
9
i możemy uzyskać ostatni element listy, składnia nie jest łatwa
docker inspect -f “{{ index .Config.Cmd $[$(docker inspect –format '{{ len .Config.Cmd }}' $CID)-1]}}” 7a7