Хабрахабр

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

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

Возможности

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

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

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

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


Пример контекстного меню для выбранного контейнера

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

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

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

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

commandTemplates: dockerCompose: docker-compose restartService: '} 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, предназначенной для создания консольных интерфейсов. Требуется версия Go 1.12. Исходный код распространяется на условиях свободной лицензии BSD 3-Clause (New).

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

go get github.com/jesseduffield/lazydocker

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

Перспективы

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

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

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

P.S.

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

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»