Управление Docker-контейнерами с помощью lazydocker

TL;DR
lazydocker — это терминальное приложение с графическим интерфейсом (TUI), которое собирает в одном окне информацию о всех ваших Docker-контейнерах, образах и томах. Установите его локально (не как контейнер), чтобы видеть логи и графики использования ресурсов, используйте для быстрой навигации, массовых команд и устранения неполадок.
Почему стоит использовать lazydocker?
Docker позволяет запускать приложения в изолированных контейнёрах, не засоряя систему новыми пакетами. Каждое приложение работает в отдельном контейнере и не взаимодействует с системой или другими приложениями, если вы этого не разрешите.
Когда у вас несколько проектов и много docker-compose.yml в разных папках, отслеживать, что запущено и где — утомительно. Командная строка мощна, но запоминать синтаксис и переключаться между каталогами неудобно. lazydocker решает эту проблему: он собирает состояние Docker на хосте и отображает его в удобном интерфейсе прямо в терминале.
Важно: если вы запускаете lazydocker как контейнер, вы не увидите логи и метрики других контейнеров. Для полной картины запускайте lazydocker локально на хосте.
Что делает lazydocker — коротко
- Показывает запущенные сервисы (Docker Compose), отдельные контейнеры, образы и тома.
- Отображает логи, CPU и память, environment переменные и конфигурацию контейнера.
- Позволяет управлять контейнерами: запуск, остановка, перезапуск, удаление, вход в терминал контейнера.
- Поддерживает массовые (bulk) команды для всех контейнеров или для сервисов Compose.
Как установить lazydocker на Linux
Хотя lazydocker доступен как docker-образ, запуск его в контейнере ограничит видимость логов и графиков других контейнеров. Рекомендуется установить утилиту на хост по скрипту установки:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bashСовет безопасности: всегда предварительно просматривайте содержимое скрипта перед тем, как запускать его с правами Bash.
Альтернативные способы установки
- Установочный пакет для вашей дистрибуции (если доступен).
- Сборка из исходников (go build) — полезно, если вам нужна особая версия.
Запуск и базовое использование
Запустите lazydocker командой:
lazydockerlazydocker автоматически найдёт все контейнеры, образы, тома и сервисы Docker на хосте — не важно, где находятся docker-compose.yml.
Интерфейс организован вертикальными панелями. Слева обычно располагаются четыре раздела: Services (Сервисы), Standalone containers (Отдельные контейнеры), Images (Образы) и Volumes (Тома). Правая панель показывает детали выбранного элемента: логи, метрики, переменные окружения и т. п.
Навигация:
- Стрелки вверх/вниз — перемещение по списку.
- Мышь — клики по элементам поддерживаются в большинстве терминалов.
- Клавиши быстрого доступа показываются в меню и рядом с действиями.
Просмотр логов и метрик
По умолчанию правая панель показывает логи выделенного контейнера. Вверху панели есть вкладки (Log, CPU, Memory, Env, Config, Top). Переключайте вкладки для просмотра нужной информации.
Для образов и томов доступны не все вкладки — обычно там только конфигурация и метаданные.
Основные действия и меню
С выделенным контейнером нажмите x — откроется меню действий. Там вы найдете:
- stop — остановить контейнер
- pause — приостановить
- restart — перезапустить
- remove — удалить
- открытие веб-интерфейса (если контейнер экспортирует порт)
- exec — выполнить команду внутри контейнера
Меню также показывает сочетания клавиш для тех действий, которые вы будете выполнять часто.
Массовые команды (Bulk Commands)
Нажмите b для открытия меню групповых команд. Поведение зависит от активного левого раздела:
- В Services — стандартные docker-compose команды (up, down, pull и т. п.).
- В Standalone containers — остановка, удаление и очистка контейнеров.
- В Images/Volumes — обычно доступны команды prune для очистки неиспользуемого пространства.
Используйте эти команды, чтобы быстро применить одно действие ко всем выбранным объектам.
Полезные сценарии и рабочий процесс (мини-методология)
- Быстрая проверка состояния: запускаете lazydocker, сканируете раздел Services и проверяете наличие контейнеров в состоянии Exit или Restarting.
- Диагностика: выбираете контейнер — просматриваете логи и вкладку CPU/Memory.
- Локальный фикс: если нужно, через меню
execзапускаете shell и исправляете конфигурацию. - Массовые операции: для развёртывания нового docker-compose выполните Bulk Command → up.
- Архивация и уборка: периодически выполняйте prune для неиспользуемых образов и томов во вкладках Images/Volumes.
Этот цикл подходит как для одного сервера, так и для рабочего ноутбука разработчика.
Чек-листы по ролям
Администратор (Ops):
- Установить lazydocker на каждый хост с Docker.
- Настроить доступ (ssh) и права только для доверенных пользователей.
- Проводить просмотр логов и метрик при инцидентах.
Разработчик:
- Использовать lazydocker для быстрого входа в контейнер (exec).
- Проверять логи при тестировании изменений.
- Убедиться, что docker-compose.yml корректно описывает зависимости между сервисами.
Hobbyist / Raspberry Pi энтузиаст:
- Устанавливать lazydocker локально на устройстве.
- Использовать Bulk Commands для обновления всех сервисов за один запуск.
- Следить за свободным местом на диске в разделе Volumes и Images.
Шпаргалка: горячие клавиши (cheat sheet)
| Действие | Клавиша |
|---|---|
| Открыть lazydocker | lazydocker |
| Показать меню действий для контейнера | x |
| Массовые команды | b |
| Навигация по списку | Стрелки ↑ / ↓ |
| Быстрый вход в контейнер (exec) | Через меню x -> Exec |
Устранение неполадок и план восстановления (инцидентный план)
Важно: перед выполнением радикальных действий снимите логи и сделайте резервную копию данных томов.
- Симптом: сервис падает или перезапускается постоянно.
- Откройте lazydocker, выберите контейнер, просмотрите последние логи.
- Посмотрите вкладку Env на предмет неверных переменных окружения.
- Если логи указывают на ошибку приложения, выполните
execи запустите диагностику внутри контейнера.
- Симптом: высокое потребление CPU/памяти.
- Посмотрите вкладку CPU/Memory для соответствующего контейнера, проверьте процессы через Top.
- Временно ограничьте контейнер (если используете cgroups) или перезапустите и посмотрите изменение.
- Если контейнер не подлежит восстановлению:
- Сохраните логи и конфигурации.
- Перезапустите контейнер:
restartили через Bulk Commands для сервисов. - Если проблема повторяется, откройте shell и извлеките дамп состояния для дальнейшего анализа.
Критерии приёмки после восстановления:
- Сервис стабильно работает 15–30 минут без появления ошибок в логах.
- Потребление CPU/памяти вернулось в допустимые пределы.
- Не появилось новых сбоев в зависимых контейнерах.
Когда lazydocker не подходит — альтернативы и ограничения
Когда lazydocker хорош:
- Для локального администрирования одного хоста.
- Для быстрого просмотра логов и простого управления.
Ограничения и случаи, когда стоит выбрать другое решение:
- Масштабирование на десятки хостов: лучше использовать системы оркестрации и мониторинга (Kubernetes, Prometheus, Grafana).
- Требуется централизованная система логирования и алертинга — внедрите ELK/EFK стек.
- Если вы предпочитаете веб-интерфейс, есть Portainer и подобные GUI-решения.
Маленькая таблица сравнения (качественно):
| Задача | lazydocker | Portainer | Kubernetes + Prometheus |
|---|---|---|---|
| Быстрый локальный контроль | Отлично | Хорошо | Плохо |
| Централизованный мониторинг | Плохо | Хорошо | Отлично |
| Поддержка масштабов | Ограничено | Средне | Отлично |
Простое руководство по миграции с lazydocker на масштабируемое решение
- Оцените количество хостов и сервисов.
- Введите централизованное логирование (Filebeat → Elasticsearch) и метрики (Prometheus).
- Если нужно autoscaling и сложные деплои — переходите на Kubernetes.
- Используйте lazydocker как локальный инструмент разработчика, а не как систему производства в крупном масштабе.
flowchart TD
A[Есть Docker и несколько контейнеров?] -->|да| B[Использовать lazydocker]
A -->|нет| C[Оставить CLI или выбрать простой GUI]
B --> D{Нужно ли видеть метрики и логи централизованно?}
D -->|да| E[Развернуть Prometheus/Grafana и централизованное логирование]
D -->|нет| F[Оставить lazydocker локально]Короткий глоссарий
- Контейнер: изолированный экземпляр приложения с зависимостями.
- Образ (image): шаблон для запуска контейнера.
- Тома (volumes): постоянные хранилища данных вне контейнера.
- Docker Compose: инструмент для запуска множества контейнеров по описанию в YAML.
- TUI: текстовый пользовательский интерфейс (Terminal User Interface).
Важные замечания
Важно: запуск lazydocker как контейнера ограничивает его доступ к журналам и метрикам других контейнеров. Для полноценной работы запускайте утилиту на хосте.
Краткое резюме
lazydocker — лёгкий и удобный инструмент для локального мониторинга и управления Docker-контейнерами прямо в терминале. Он ускоряет диагностику, упрощает массовые операции и служит хорошей вспомогательной утилитой для разработчиков и администраторов. Для крупномасштабных развёртываний и централизованного мониторинга рекомендуется сочетать lazydocker с системами типа Prometheus, Grafana и централизованным логированием.
Похожие материалы
Как продать старые гаджеты за деньги
Google Календарь как личный дневник
Фотографирование в аквариуме: советы и настройки
ViVeTool: включение экспериментальных функций Windows
Shift — создайте собственные фотофильтры