docker
August 21, 2023
Docker - форматированный вывод информации о контейнерах
Обычный вывод о запущенном контейнере:
> $ docker inspect dbe556947aef
Такая команда выведет вс информацию в stdout
> $ docker inspect --format='{{json .}}' dbe556947aefТакой вывод будет в виде JSON, который можно обработать через jq:
> $ docker inspect --format='{{json .}}' antipy_postgres_test | jq .Id
"dbe556947aefcc8f02e195a903a3e894a3ca532952ce373a47708b552cef7d71"Но еще удобнее прсить запрос сразу же в команде docker inspect:
> $ docker inspect --format='{{json .Config.Labels.maintainer}}' dbe556947aef
"PostGIS Project - https://postgis.net"Но есть проблема, если ключ содержить побелы или точки в имени, то такой подход не сработает, например если мы попытаемся забрать значение "com.docker.compose.config-hash" из
.Config.Labels.maintainer."com.docker.compose.config-hash":
> $ docker inspect --format='{{json .Config.Labels.com.docker.compose.config-hash}}' dbe556947aef
template parsing error: template: :1: bad character U+002D '-'
> $ docker inspect --format='{{json .Config.Labels.["com.docker.compose.config-hash"]}}' dbe556947aef
template parsing error: template: :1: bad character U+005B '['Решение: Использовать в таких случаях index:
> $ docker inspect dbe556947aef -f '{{index .Config.Labels "com.docker.compose.config-hash"}}'
4ee3f97c83ef9c92e29b809eac2ac70aa53bbf0862c01da9c258580428aecd99