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