Поиск…


различные примеры проверки докеров

Я нахожу, что примеры в docker inspect документацию, кажутся волшебными, но не объясняют многое.

Проверка докеров важна, потому что это чистый способ извлечения информации из docker inspect -f ... container_id контейнера docker inspect -f ... container_id

(или весь запущенный контейнер)

docker inspect -f ... $(docker ps -q)

избегая некоторых ненадежных

docker command | grep or awk | tr or cut

Когда вы запускаете docker inspect вы можете легко получить значения с «верхнего уровня», используя базовый синтаксис для контейнера, использующего htop (от https://hub.docker.com/r/jess/htop/) с pid ae1

docker inspect -f '{{.Created}}' ae1

может показать

2016-07-14T17:44:14.159094456Z

или же

docker inspect -f '{{.Path}}' ae1

может показать

htop

Теперь, если я извлечу часть моего docker inspect

я вижу

"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" Таким образом, я получаю словарь, поскольку он имеет { ...} и много ключей: значения

Таким образом, команда

docker inspect -f '{{.State}}' ae1

вернет список, например

{running true false false false false 4525 0 2016-07-14T17:44:14.406286293Z 0001-01-01T00:00:00Z}

Я могу получить значение State.Pid легко

docker inspect -f '{{ .State.Pid }}' ae1

я получил

4525

Иногда проверка докеров дает список, начиная с [ и заканчивается ]

другой пример, с другим контейнером

docker inspect -f '{{ .Config.Env }}' 7a7

дает

[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]

Чтобы получить первый элемент списка, добавим индекс перед обязательным полем и 0 (как первый элемент) после, так что

docker inspect -f '{{ index ( .Config.Env) 0 }}' 7a7

дает

DISPLAY=:0

Мы получаем следующий элемент с 1 вместо 0, используя тот же синтаксис

docker inspect -f '{{ index ( .Config.Env) 1 }}' 7a7

дает

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Мы можем получить количество элементов этого списка

docker inspect -f '{{ len .Config.Env }}' 7a7

дает

9

и мы можем получить последний элемент списка, синтаксис непросто

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow