Lazydocker: Революция в управлении Docker! Полный гайд от установки до про-использования

Что такое Lazydocker?

Lazydocker — это терминальная утилита с текстовым пользовательским интерфейсом (TUI) для управления Docker-контейнерами, образами, томами и сетями. Она предоставляет простой и интуитивно понятный интерфейс для выполнения повседневных операций с Docker без необходимости запоминать сложные команды.


Lazydocker demo

Рисунок 1: Анимированое демо (откроется в новом окне)


Lazydocker demo 3

Рисунок 2: Анимированое демо (откроется в новом окне)

Преимущества Lazydocker:

  • Визуальный интерфейс для всех Docker-объектов
  • Быстрый доступ к логам и статистике
  • Упрощенное выполнение сложных команд
  • Интерактивный мониторинг в реальном времени
  • Кроссплатформенность

Установка и настройка

Установка через скрипт (Linux/macOS)

# Скачать и установить lazydocker
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

# Или через brew (macOS и Linux)
brew install lazydocker

Установка через Go

go install github.com/jesseduffield/lazydocker@latest

Установка через Docker

# Запуск как контейнер
docker run --rm -it -v \
  /var/run/docker.sock:/var/run/docker.sock \
  -v /path/to/config:/.config/jesseduffield/lazydocker \
  lazyteam/lazydocker

Установка в Windows

# Через Chocolatey
choco install lazydocker

# Через Scoop
scoop bucket add extras
scoop install lazydocker

Проверка установки

lazydocker --version

Интерфейс и основы работы

Запуск Lazydocker

# Базовый запуск
lazydocker

# С определенным проектом
lazydocker --project-dir ./my-project

# С фильтром контейнеров
lazydocker --filter "name=web"

Структура интерфейса

Интерфейс разделен на несколько панелей:

  1. Главная панель — список контейнеров, образов, томов
  2. Панель логов — вывод логов выбранного контейнера
  3. Панель статуса — информация о системе и горячие клавиши
  4. Панель команд — ввод пользовательских команд

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

  • [ESC] или q — выход/назад
  • [Tab] — переключение между панелями
  • [Enter] — выбор элемента
  • [Space] — множественный выбор
  • d — меню действий (docker commands)
  • [ и ] — переключение между вкладками

Повседневное использование

Управление контейнерами

Просмотр и фильтрация контейнеров

# Запуск с фильтром по имени
lazydocker --filter "status=running"

# В интерфейсе используйте '/' для поиска

Основные операции с контейнерами

В интерфейсе Lazydocker вы можете выполнять:

  1. Запуск/остановкаs (stop/start)
  2. Перезагрузкаr (restart)
  3. Удалениеd затем remove
  4. Просмотр логовl (logs)
  5. Вход в контейнерe (exec)

Пример работы с контейнерами

# Создадим тестовый контейнер для демонстрации
docker run -d --name nginx-test -p 8080:80 nginx:alpine

В Lazydocker:

  • Найдите контейнер nginx-test в списке
  • Нажмите l для просмотра логов
  • Нажмите s для остановки контейнера
  • Нажмите e для входа в контейнер

Работа с образами

Просмотр образов

Перейдите на вкладку "Images" используя [ или ]

Операции с образами:

  • b — построить образ из Dockerfile
  • d — удалить образ
  • [Ctrl+R] — принудительное обновление реестра

Пример построения образа

# Создадим простой Dockerfile для демонстрации
mkdir test-app && cd test-app
cat > Dockerfile << EOF
FROM nginx:alpine
COPY . /usr/share/nginx/html
EOF
echo "Hello Lazydocker!" > index.html

В Lazydocker:

  1. Перейдите на вкладку "Images"
  2. Нажмите b (build)
  3. Введите путь к Dockerfile: ./test-app
  4. Укажите имя образа: my-nginx-app

Управление томами и сетями

Работа с томами

  • Создание и удаление томов
  • Просмотр содержимого томов
  • Очистка неиспользуемых томов

Пример работы с томами

# Создадим том для демонстрации
docker volume create test-volume
docker run -d -v test-volume:/data --name volume-test alpine tail -f /dev/null

В Lazydocker:

  1. Перейдите на вкладку "Volumes"
  2. Выберите test-volume
  3. Просмотрите информацию о томе
  4. Удалите том через меню действий (d)

Примеры рабочих процессов

Разработка веб-приложения

Запуск development-окружения

# docker-compose.yml для примера
version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    depends_on:
      - db

  db:
    image: postgres:13
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

В Lazydocker:

# Запуск в директории с docker-compose.yml
lazydocker --project-dir ./my-app

# Операции:
# - Просмотр логов всех сервисов
# - Мониторинг использования ресурсов
# - Быстрая перезагрузка сервисов

Отладка production-окружения

Мониторинг нескольких контейнеров

# Запуск с фильтром по проекту
lazydocker --filter "label=com.docker.compose.project=myproject"

Типичный workflow отладки:

  1. Найти проблемный контейнер в списке
  2. Просмотреть логи (l)
  3. Проверить использование ресурсов (m)
  4. Выполнить команды внутри контейнера (e)
  5. Перезапустить сервис при необходимости (r)

Управление микросервисной архитектурой

# Пример для мониторинга группы сервисов
lazydocker --filter "name=api" --filter "name=frontend" --filter "name=worker"

Кастомизация и настройки

Конфигурационный файл

Lazydocker поддерживает конфигурацию через YAML-файл:

# Локация конфига по умолчанию
~/.config/jesseduffield/lazydocker/config.yml

Пример кастомизации

gui:
  # Цветовая схема
  theme:
    activeBorderColor:
      - "#50fa7b"  # зеленый
    inactiveBorderColor:
      - "#6272a4"  # серый

  # Размеры панелей
  sidePanelWidth: 0.2
  mainPanelHeight: 0.6

reporting: "off"  # Отключить телеметрию

commandTemplates:
  # Кастомные команды Docker
  RestartContainer:
    template: "docker restart {{ .Container.Name }}"
    description: "Restart container"

  # Кастомная команда для очистки
  Cleanup:
    template: "docker system prune -f"
    description: "Clean unused docker objects"

Пользовательские команды

Добавьте свои команды в конфиг:

customCommands:
  containers:
    - name: "View detailed info"
      command: "docker inspect {{ .Container.Name }}"
      attach: true

    - name: "Copy container ID"
      command: "echo {{ .Container.ID }} | pbcopy"
      attach: false

Интеграция с Docker Compose

dockerCompose:
  # Автоматически использовать docker-compose.yml в текущей директории
  autoRun: true

  # Кастомные команды compose
  commandTemplates:
    Up: "docker-compose up -d"
    Down: "docker-compose down"

Полезные советы и трюки

Производительность и оптимизация

Ускорение работы с большим количеством контейнеров

# В config.yml
updateContainersInterval: 30  # Увеличить интервал обновления

gui:
  # Отключить ненужные панели
  showAllContainers: false
  showIntermediateContainers: false

Фильтрация для конкретных задач

# Только запущенные контейнеры
lazydocker --filter "status=running"

# Контейнеры определенного проекта
lazydocker --filter "label=com.docker.compose.project=myapp"

# По имени сервиса
lazydocker --filter "name=.*api.*"

Расширенные возможности

Мониторинг в реальном времени

  • Используйте m для просмотра метрик использования ресурсов
  • [Ctrl+R] для принудительного обновления статистики

Быстрое выполнение команд

# Прямой запуск команд из терминала
lazydocker --command "logs nginx"

Интеграция с CI/CD

# Пример скрипта для автоматизации
#!/bin/bash
# monitor-deployment.sh

# Запуск lazydocker для мониторинга деплоя
lazydocker --filter "name=deployment-" --command "follow logs"

Безопасность

Безопасная работа с продакшеном

# Конфиг для production-окружения
confirmOnQuit: true
confirmKillAllContainers: true
confirmRemoveAllContainers: true

Ограничение прав доступа

# Запуск с ограниченными правами
lazydocker --read-only

# Или через Docker с ограничениями
docker run --rm -it \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v ./readonly-config.yml:/.config/jesseduffield/lazydocker/config.yml \
  lazyteam/lazydocker

Решение проблем

Проблемы с производительностью

# Увеличить интервалы обновления
updateContainersInterval: 60
updateImagesInterval: 120
updateVolumesInterval: 120

Проблемы с отображением

gui:
  # Изменить размер шрифта
  fontSize: 12

  # Альтернативные цветовые схемы
  theme:
    lightTheme: false  # Переключить на темную тему

Заключение

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

  • Эффективно управлять множеством контейнеров
  • Быстро диагностировать проблемы
  • Сократить время на рутинные операции
  • Улучшить мониторинг Docker-окружения

Начните с базовых операций и постепенно осваивайте расширенные возможности, кастомизируя инструмент под свои нужды. Lazydocker станет незаменимым помощником в вашем workflow работы с Docker.

Дополнительные ресурсы


Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts
12640login-checkLazydocker: Революция в управлении Docker! Полный гайд от установки до про-использования

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