Docker
dockare inspektera att få olika fält för nyckel: värde och element i listan
Sök…
olika dockare inspekterar exempel
Jag tycker att exemplen i docker inspect
dokumentation verkar magiska, men förklarar inte så mycket.
Dockerinspektion är viktigt eftersom det är det rena sättet att extrahera information från en löpande containerdockare docker inspect -f ... container_id
(eller alla behållare som körs)
docker inspect -f ... $(docker ps -q)
undvika vissa opålitliga
docker command | grep or awk | tr or cut
När du startar en docker inspect
du docker inspect
få värden från "toppnivå", med en grundläggande syntax som för en container som kör htop (från https://hub.docker.com/r/jess/htop/) med en pid ae1
docker inspect -f '{{.Created}}' ae1
kan visa
2016-07-14T17:44:14.159094456Z
eller
docker inspect -f '{{.Path}}' ae1
kan visa
htop
Nu om jag extraherar en del av min docker inspect
Jag förstår
"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"
Så jag får en ordlista, eftersom det har { ...}
och många nycklar: värden
Så kommandot
docker inspect -f '{{.State}}' ae1
kommer att returnera en lista, t.ex.
{running true false false false false 4525 0 2016-07-14T17:44:14.406286293Z 0001-01-01T00:00:00Z}
Jag kan få värdet på State.Pid enkelt
docker inspect -f '{{ .State.Pid }}' ae1
jag får
4525
Ibland ger dockarinspektionen en lista när den börjar med [
och slutar med ]
ett annat exempel med en annan behållare
docker inspect -f '{{ .Config.Env }}' 7a7
ger
[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]
För att få det första elementet i listan lägger vi till index före det obligatoriska fältet och 0 (som första elementet) efter, så
docker inspect -f '{{ index ( .Config.Env) 0 }}' 7a7
ger
DISPLAY=:0
Vi får nästa element med 1 istället för 0 med samma syntax
docker inspect -f '{{ index ( .Config.Env) 1 }}' 7a7
ger
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Vi kan få antalet element i listan
docker inspect -f '{{ len .Config.Env }}' 7a7
ger
9
och vi kan få det sista elementet i listan, syntaxen är inte lätt
docker inspect -f “{{ index .Config.Cmd $[$(docker inspect –format '{{ len .Config.Cmd }}' $CID)-1]}}” 7a7