Администрирование Docker-контейнеров зачастую требует выполнения множества команд в командной строке: docker ps для списка запущенных контейнеров, затем docker logs для просмотра журналов, docker exec для входа в оболочку контейнера. Постоянное переключение между командами для перезапуска, мониторинга или инспекции может быть утомительным и отнимать много времени, особенно при работе с десятками контейнеров.

lazydocker — это интерактивный терминальный пользовательский интерфейс (TUI), разработанный для упрощения повседневных операций с Docker. Он консолидирует 90% наиболее часто используемых команд Docker CLI в едином окне, предоставляя централизованное представление о контейнерах, их журналах, метриках производительности (CPU/RAM), образах, томах и сетях. Управление осуществляется с помощью клавиатуры, что значительно ускоряет выполнение задач по сравнению с традиционным CLI.

Установка lazydocker

Установка lazydocker занимает всего несколько минут и доступна для большинства популярных операционных систем.

Быстрая установка (Linux)

Для пользователей Linux самый быстрый способ — использовать официальный скрипт установки:

curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

Установка через пакетные менеджеры

  • macOS:
brew install lazydocker
  • Arch Linux:
sudo pacman -S lazydocker
  • Windows (WSL):
scoop install lazydocker

Преимущества lazydocker

lazydocker предлагает ряд существенных преимуществ, повышающих продуктивность работы с Docker:

  • Единое окно управления: Все ключевые компоненты Docker — контейнеры, образы, тома, сети и журналы — доступны в одном интерфейсе, исключая необходимость переключения между окнами терминала или выполнения множества команд.
  • Управление с клавиатуры: Интуитивно понятные горячие клавиши позволяют быстро выполнять большинство операций, значительно сокращая время на выполнение рутинных задач.
  • Мониторинг в реальном времени: Предоставляет актуальные данные о потреблении ресурсов (CPU, память) каждого контейнера, что критически важно для оперативного выявления проблем производительности.
  • Гибкая настройка: Пользователи могут персонализировать интерфейс, изменяя темы, шрифты и сочетания клавиш под свои предпочтения.

Ограничения

Несмотря на свои преимущества, lazydocker имеет некоторые ограничения:

  • Как и любая новая утилита, lazydocker добавляет ещё один инструмент в вашу систему.
  • Он не может полностью заменить Docker CLI, особенно для автоматизированных сценариев и сложных скриптов.
  • Требуется некоторое время для привыкания к специфике TUI-интерфейса.

Обзор интерфейса lazydocker

После запуска команды lazydocker вы увидите трёхпанельный интерфейс:

  1. Левая панель: Отображает список всех Docker-контейнеров. Цвет индикатора статуса позволяет мгновенно определить состояние: зелёный — контейнер запущен, красный — остановлен или возникла ошибка.
  2. Правая панель: Показывает журналы (логи) выбранного контейнера в реальном времени, с автоматическим скроллингом.
  3. Нижняя панель: Содержит информацию о статусе, метриках производительности (CPU, RAM) и список доступных команд для текущего контекста.

Основные горячие клавиши

lazydocker значительно упрощает выполнение стандартных операций с Docker, используя удобные сочетания клавиш:

  • [k] / [j] — перемещение вверх/вниз по списку контейнеров.
  • [l] — просмотр логов выбранного контейнера (с автоматическим следованием за новыми записями).
  • [e] — вход в оболочку контейнера (аналогично docker exec -it).
  • [r] — перезапуск контейнера.
  • [s] — остановка/запуск контейнера.
  • [d] — удаление контейнера (с запросом подтверждения).
  • [m] — отображение метрик производительности (CPU, память, сеть).

Ключевые функции для эффективной работы

1. Поиск по логам в реальном времени

lazydocker позволяет быстро найти нужную информацию в логах контейнера, действуя как встроенный grep. Выбрав контейнер и открыв его логи, просто нажмите Ctrl+F, введите текст для поиска, и интерфейс отфильтрует строки, отображая только соответствующие запросу.

2. Быстрая диагностика проблемных контейнеров

В случае сбоя контейнера lazydocker предоставляет всю необходимую информацию для оперативной диагностики:

  • Код выхода (exit code) контейнера.
  • Последние записи в логах непосредственно перед сбоем.

Это позволяет немедленно перейти к просмотру логов (клавиша [l]) или войти в оболочку (клавиша [e]) без необходимости запоминать или вводить имя контейнера.

3. Очистка системы одной командой

Для поддержания порядка в системе Docker и освобождения дискового пространства lazydocker предлагает удобный инструмент очистки. Нажатие [D] (Shift+d) открывает меню, где можно выбрать, что именно удалить: остановленные контейнеры, неиспользуемые образы, «висячие» тома. Это значительно безопаснее и интуитивнее, чем выполнение команды docker system prune -a, которая может случайно удалить нужные данные.

4. Просмотр изменений в файловой системе контейнера

Функция просмотра изменений (клавиша [v]) для выбранного контейнера позволяет увидеть, какие файлы были изменены относительно исходного образа. Это аналог docker diff, но представленный в более наглядной и интерактивной форме, что полезно для отладки и понимания состояния контейнера.

Пример использования lazydocker

Рассмотрим типичный сценарий:

  1. Вы запускаете lazydocker.
  2. Замечаете, что контейнер с именем «app» отображается красным, указывая на сбой.
  3. Нажимаете [l] для просмотра его логов и видите ошибку «Port already in use».
  4. Нажимаете [s], чтобы остановить соседний контейнер, который занимает нужный порт.
  5. Возвращаетесь к контейнеру «app» и нажимаете [r] для его перезапуска.
  6. Контейнер «app» успешно запускается, и вы решаете проблему за несколько секунд вместо нескольких минут ручного поиска и выполнения команд.

lazydocker — это мощный инструмент, который трансформирует опыт взаимодействия с Docker CLI, делая его более интуитивным, быстрым и эффективным. Он идеально подходит для разработчиков и системных администраторов, стремящихся оптимизировать свои рабочие процессы.

Ознакомиться с проектом и его исходным кодом можно на GitHub: https://github.com/jesseduffield/lazydocker