- PVSM.RU - https://www.pvsm.ru -
Вы не одиноки в этом мире, если вот уже долгое время не рады тому, как выглядит стандартный вывод docker ps
. Хотя и существуют различные workarounds на эту тему (см. в конце материала), однажды какой-нибудь энтузиаст должен был сделать «что-то ещё»… и это произошло в наступившем 2019 году. Имя ему — docker-pretty-ps [1].
Задумка автора банальна донельзя: горизонтальный вывод и цвета для наглядности.
А в качестве аудитории утилиты называются [2] «скорее разработчики, чем хардкорные DevOps'ы или SRE-инженеры».
С внешним видом всё должно быть понятно из картинки. Что позволяет утилита в смысле функций? По умолчанию выводятся все запущенные контейнеры, но этим, конечно, возможности не ограничиваются — в docker-pretty-ps поддерживается:
docker-pretty-ps my,try
выведет контейнеры, в названии которых найдены *my*
и *try*
(например, docker-registry
и mysql-redmine
);container_id
, created
, ports
, image_id
, status
, command
);slim
(убирает все перечисленные выше поля, оставляя только названия контейнеров):
Код проекта написан на Python и авторы отдельно отмечают, что сторонние Python-пакеты не используются, поэтому для запуска достаточно иметь в системе Docker и Python, что справедливо для многих.
Установка осуществляется через pip:
pip install docker-pretty-ps
… или же простой сборкой:
git clone https://github.com/politeauthority/docker-pretty-ps.git
cd docker-pretty-ps
python3 setup.py build
python3 setup.py install
Всё — можно пользоваться:
$ docker-pretty-ps -h
usage: docker-pretty-ps [-h] [-a] [-s] [-i INCLUDE] [-o [ORDER]] [-r] [-j]
[-v]
[search]
positional arguments:
search Phrase to search containers, comma separate multiples.
optional arguments:
…
Несмотря на широкую поддержку на Reddit, эта утилита подойдёт, безусловно, не всем. В частности, если у вас много контейнеров (десятки и более), то даже использование режима slim
не всегда будет удобным. И тогда более полезным может оказаться один из известных уже давно workaround'ов.
Опция форматирования для docker ps
— это не просто workaround, но и в некотором смысле лучшее решение, т.к. не требует ничего дополнительного в смысле установки в системе.
Аргумент --format
принимают многие команды Docker, позволяя (через go-template [3]) настроить их вывод под себя. Для команды docker ps
его поддержка появилась уже давно (в релизе Docker 1.8 от августа 2015 г.). Вот пример её использования:
[flant] d.shurupov@kube-node-test ~ $ sudo docker ps --format 'table {{.Names}}t{{.Image}}'
NAMES IMAGE
k8s_fluentd_fluentd-jmzjd_loghouse… flant/loghouse-fluentd…
k8s_cert-manager_cert-manager-… quay.io/jetstack/cert-manager-controller…
k8s_prometheus-config-reloader_… 597141b113d9
k8s_prometheus_prometheus-main-… cc866859f8df
k8s_POD_prometheus-main-0_kube-… k8s.gcr.io/pause-amd64:3.1
…
(NB: В приведённом выше примере вручную были обрезаны полные названия контейнеров и образов — для лучшей наглядности.)
Подробности о работе с --format
можно найти, например, в этой статье [4], а примеры доступных функций — в документации Docker [5].
Пожалуй, даже более популярный путь — использование утилиты ctop [6], которая предлагает интерфейс, похожий на классический top
, но для Docker-контейнеров:
Её удобный запуск в консоли можно свести к такому алиасу:
alias ctop='docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest'
Помимо этого, конечно, существуют и другие — более продвинутые в своих возможностях — интерфейсы, но их описание выходит за рамки статьи. А чем пользуетесь вы?
Читайте также в нашем блоге:
Автор: Дмитрий Шурупов
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/sistemnoe-administrirovanie/306067
Ссылки в тексте:
[1] docker-pretty-ps: https://github.com/politeauthority/docker-pretty-ps
[2] называются: https://www.reddit.com/r/docker/comments/ahl6ph/lets_make_docker_ps_human_readable_dockerprettyps/eefk0wl/
[3] go-template: https://golang.org/pkg/text/template/
[4] этой статье: https://container42.com/2016/03/27/docker-quicktip-7-psformat/
[5] документации Docker: https://docs.docker.com/config/formatting/
[6] ctop: https://github.com/bcicen/ctop
[7] Обзор GUI-интерфейсов для управления Docker-контейнерами: https://habr.com/ru/company/flant/blog/338332/
[8] Шпаргалка с командами Docker: https://habr.com/ru/company/flant/blog/336654/
[9] Red Hat заменяет Docker на Podman: https://habr.com/ru/company/flant/blog/426141/
[10] Самый маленький Docker-образ — меньше 1000 байт: https://habr.com/ru/company/flant/blog/413959/
[11] Linux-дистрибутив from scratch для сборки Docker-образов — наш опыт с dappdeps: https://habr.com/ru/company/flant/blog/352432/
[12] Источник: https://habr.com/ru/post/436896/?utm_source=habrahabr&utm_medium=rss&utm_campaign=436896
Нажмите здесь для печати.