Docker
docker проверяет получение различных полей для ключа: значение и элементы списка
Поиск…
различные примеры проверки докеров
Я нахожу, что примеры в 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