#docker #formatting #command-line-interface #command-line-arguments
#docker #форматирование #интерфейс командной строки #аргументы командной строки
Вопрос:
Как использовать --format
опцию docker inspect
, чтобы получить его вывод в виде таблицы. Следуя документации, которую я использовал --format 'table ...'
в качестве опции, docker ps
и она работала нормально, но docker inspect
, похоже, игнорирует ее.
пример:
echo "docker ps as table"
docker ps -a --format 'table {{.Names}}t{{.Image}}'
echo "docker inspect as table"
docker ps --quiet | xargs --no-run-if-empty docker inspect
--format 'table {{.Name}}t{{.Config.Image}}'
выдает вывод:
docker ps as table
NAMES IMAGE
tmp-php-7.3-cli-buster tmp-php:7.3-cli-buster
tmp-mysql-8.0.19-client mysql:8
tmp-mysql-8.0.19 tmp-mysql:8.0.19
tmp-nginx-1.17.8 tmp-nginx:1.17.8
tmp-php-7.3-fpm-buster tmp-php:7.3-fpm-buster
tmp-node-13.8.0-buster tmp-node:13.8.0-buster
docker inspect as table
table /tmp-php-7.3-cli-busterttmp-php:7.3-cli-buster
table /tmp-mysql-8.0.19-clienttmysql:8
table /tmp-mysql-8.0.19ttmp-mysql:8.0.19
table /tmp-nginx-1.17.8ttmp-nginx:1.17.8
table /tmp-php-7.3-fpm-busterttmp-php:7.3-fpm-buster
table /tmp-node-13.8.0-busterttmp-node:13.8.0-buster
Ответ №1:
Похоже docker inspect
, в настоящее время невозможно выводить таблицы, см. Эту Проблему на GitHub:
Я попал сюда, потому что я тоже пытался вывести таблицу, но, к сожалению, все, что я могу сделать, это процитировать комментарий к проблеме:
TLDR;
docker inspect
обрабатывает вывод JSON и, следовательно, шаблоны вывода JSON, в отличие от строк форматирования, которые вы ожидаете от других команд (таких какdocker stats
)
…
По сути, именно поэтому таблица работает не так, как ожидалось, и возвращается как необработанная.
Ответ №2:
Мне удалось получить «табличный» вывод, похожий на docker stats
. В основном с помощью column
команды.
Например, с помощью этой команды:
docker inspect $(docker ps -q) --format "{{.Name}} {{.Config.User}}" | column -t -s ' '
Или, если вам также нужны какие-то причудливые заголовки:
(echo "NAME USER"; docker inspect $(docker ps -q) --format "{{.Name}} {{.Config.User}}") | column -t -s ' '