- PVSM.RU - https://www.pvsm.ru -

Lazydocker — GUI для Docker прямо в терминале

Lazydocker — GUI для Docker прямо в терминале - 1

Два года назад мы уже делали [1] обзор GUI-интерфейсов для работы с Docker, однако мир любителей подобных решений не стоит на месте. На днях до версии 0.2 обновился, а вместе с тем и получил широкую огласку, молодой проект lazydocker [2], позиционирующий себя как «более ленивый путь управлять всем в Docker». Утилита стремительно набирает популярность — ещё вчера количество его GitHub stars не достигало 3000, а уже сегодня перевалило за 4000.

Возможности

Авторы lazydocker так поясняют появление своего детища:

«Запоминать команды docker тяжело. Запоминать алиасы чуть менее тяжело. Следить за состоянием контейнеров по многочисленным окнам терминала практически невозможно. А что, если вся требуемая информация была бы в одном окне, а каждая типовая команда — доступна по нажатию на одну клавишу (и имелась возможность добавлять свои команды)? Цель lazydocker — превратить эту мечту в реальность».

Итак, lazydocker делает из терминала интерактивный интерфейс для Docker и Docker Compose, позволяющий быстро и удобно переключаться между сервисами, запущенными в разных контейнерах, и связанными с ними ресурсами (образами, томами), просматривать их статус и выполнять различные команды. Поскольку «иногда лучше один раз увидеть», авторы позаботились о весьма самодостаточной gif'ке-иллюстрации:

Lazydocker — GUI для Docker прямо в терминале - 2

Навигация по интерфейсу поддерживается как с помощью клавиатуры, так и мыши. При выборе нужного элемента для него доступно контекстное меню:

Lazydocker — GUI для Docker прямо в терминале - 3
Пример контекстного меню для выбранного контейнера

Как видно, для каждой команды также предопределена клавиша для быстрого выполнения популярных действий. Полный их список можно увидеть здесь [3] (кстати, у меню есть локализации [4] для нескольких языков, среди которых всё ещё отсутствует русский).

Отдельного уважения заслуживает то внимание, которое уделено просмотру состояния контейнеров: тут не только вывод логов и конфига, но и графически отображаемая статистика (по умолчанию это потребление CPU/памяти), и top процессов. Эти возможности распространяются и на произвольные метрики, для наглядного просмотра которых тоже настраиваются графики (см. секцию stats в конфиге [5]).

Для выбранных образов можно увидеть выполняемые при их запуске команды из Dockerfile, унаследованные слои. Предусмотрена очистка неиспользуемых контейнеров, образов, томов (prune).

Доступные команды можно модифицировать, а также дополнять своими. Как это делать, легко увидеть в блоках commandTemplates и customCommands конфига [5] (к слову, конфиг тоже можно редактировать прямо из самой утилиты):

commandTemplates:
  dockerCompose: docker-compose
  restartService: '{{ .DockerCompose }} restart {{ .Service.Name }}'
  stopService: '{{ .DockerCompose }} stop {{ .Service.Name }}'
…
customCommands:
  containers:
  - name: bash
    attach: true
    command: docker exec -it {{ .Container.ID }} /bin/sh
    serviceNames: []
…

Инсталляция

Lazydocker написан на Go с использованием библиотеки gocui [6], предназначенной для создания консольных интерфейсов. Требуется версия Go 1.12. Исходный код распространяется на условиях свободной лицензии BSD 3-Clause (New).

Установка сводится к простой команде:

go get github.com/jesseduffield/lazydocker

В остальном — проще попробовать и увидеть своими глазами.

Перспективы

Разработкой lazydocker до сих пор преимущественно занимался один человек, но его популярность принесла «свежую кровь» в лице более широкого сообщества. Например, сейчас обсуждаются инициированные менее суток назад PR по переработанному Dockerfile [7] и упрощённой установке [8] бинарного релиза утилиты в Linux-дистрибутивах.

В issues проекта можно увидеть такие запросы на улучшения, как настраиваемые keybindings [9] и поддержка команды [10] docker stack. Опять же, они появились менее суток назад.

Всё это говорит о том, что уже в ближайшее время можно ожидать созревания lazydocker до более функционального и удобного решения, на которое у Docker-сообщества оказался явный спрос.

P.S.

Читайте также в нашем блоге:

Автор: Дмитрий Шурупов

Источник [13]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/322613

Ссылки в тексте:

[1] делали: https://habr.com/ru/company/flant/blog/338332/

[2] lazydocker: https://github.com/jesseduffield/lazydocker

[3] здесь: https://github.com/jesseduffield/lazydocker/blob/master/docs/keybindings/Keybindings_en.md

[4] локализации: https://github.com/jesseduffield/lazydocker/tree/master/docs/keybindings

[5] конфиге: https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md

[6] gocui: https://github.com/jroimartin/gocui

[7] переработанному Dockerfile: https://github.com/jesseduffield/lazydocker/pull/36

[8] упрощённой установке: https://github.com/jesseduffield/lazydocker/pull/45

[9] настраиваемые keybindings: https://github.com/jesseduffield/lazydocker/issues/48

[10] поддержка команды: https://github.com/jesseduffield/lazydocker/issues/47

[11] docker-pretty-ps — наконец-то удобный для чтения docker ps: https://habr.com/ru/company/flant/blog/436896/

[12] Шпаргалка с командами Docker: https://habr.com/ru/company/flant/blog/336654/

[13] Источник: https://habr.com/ru/post/446700/?utm_source=habrahabr&utm_medium=rss&utm_campaign=446700