Docker web GUI — управление контейнерами через браузер

Docker CLI — мощный инструмент, но иногда нужен визуальный интерфейс. Разбираем три популярных GUI: Portainer для полноценного управления, Dockge для Compose стеков и Lazydocker для терминала.

Вся рубрика Docker: уроки, команды и практические сценарии

Сравнение инструментов

ИнструментТипОсобенностиДля кого
PortainerWeb (браузер)Полнофункциональный, многосерверныйКоманды, продакшн
DockgeWeb (браузер)Управление Compose стекамиСамохостеры
LazydockerTUI (терминал)Не требует браузераРазработчики
Docker DesktopDesktop appОфициальный GUI от DockerWindows/Mac

Portainer — установка

Portainer — самый популярный веб-интерфейс для Docker. Community Edition (CE) бесплатный и покрывает все базовые задачи. Устанавливается как обычный контейнер:

# Создать volume для данных Portainer
docker volume create portainer_data

# Запустить Portainer
docker run -d \
  --name portainer \
  --restart=always \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

# Открыть в браузере: http://localhost:9000
# При первом запуске: создать пароль администратора

Ключевой момент: -v /var/run/docker.sock:/var/run/docker.sock — это Unix-сокет Docker daemon. Portainer использует его для управления Docker на том же хосте. Никакой дополнительной настройки не нужно.

Что умеет Portainer:

  • Запуск, остановка, удаление контейнеров
  • Просмотр логов и консоль внутри контейнера
  • Управление volumes, networks, images
  • Деплой и управление Compose стеками
  • Несколько Docker хостов из одного интерфейса
  • Управление правами доступа для команды

Portainer через Docker Compose

Если уже используешь Compose — удобнее добавить Portainer в существующий стек:

version: "3.9"

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:
# Запустить
docker compose up -d portainer

# Portainer доступен по: http://localhost:9000

Dockge — для Compose стеков

Dockge — более легковесная альтернатива, специально заточенная под управление Docker Compose стеками. Если ты запускаешь несколько приложений через Compose на одном сервере — Dockge отлично подходит:

# Создать папку для стеков
mkdir -p /opt/stacks

# Запустить Dockge
docker run -d \
  --name dockge \
  --restart unless-stopped \
  -p 5001:5001 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/stacks:/opt/stacks \
  louislam/dockge:1

# Открыть: http://localhost:5001

Особенность Dockge: все Compose файлы хранятся в /opt/stacks/имя-стека/compose.yaml. Это означает что конфигурация доступна и из терминала, и из веб-интерфейса — нет привязки только к GUI.

Dockge vs Portainer: Portainer делает всё но сложнее. Dockge делает меньше, но проще — идеален для самохостинга (Nextcloud, Vaultwarden, Gitea и подобных).

Lazydocker — TUI в терминале

Lazydocker — терминальный интерфейс (TUI). Не нужен браузер, работает прямо в SSH сессии. Идеален для разработчиков, которые проводят время в терминале:

# Установка на macOS
brew install lazydocker

# Установка на Linux
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

# Или запустить через Docker (без установки)
docker run --rm -it \
  -v /var/run/docker.sock:/var/run/docker.sock \
  lazyteam/lazydocker

# Запуск
lazydocker

Горячие клавиши в Lazydocker:

  • ←→ — переключение между панелями (контейнеры / logs / stats)
  • enter — выбрать контейнер
  • e — редактировать docker-compose.yml
  • d — удалить контейнер
  • l — просмотр логов
  • r — перезапустить контейнер
  • q — выход

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

Portainer и Dockge имеют полный доступ к Docker daemon — это как root на сервере. Открывать их наружу без защиты крайне опасно:

# НЕ делай так в продакшне:
# -p 0.0.0.0:9000:9000  — доступно со всего интернета!

# Правильно — только localhost:
# -p 127.0.0.1:9000:9000

# Безопасный доступ через SSH tunnel
ssh -L 9000:localhost:9000 user@myserver
# Теперь открой в браузере: http://localhost:9000
# Трафик зашифрован через SSH, порт не открыт наружу

# Или настрой reverse proxy с авторизацией
# nginx + basic auth или OAuth2 proxy

Рекомендуемый подход для продакшн-сервера: привязать Portainer к 127.0.0.1, подключаться только через SSH tunnel. Это даёт удобный GUI без риска утечки доступа к Docker.

Часто задаваемые вопросы

Portainer бесплатный?

Portainer Community Edition (CE) — полностью бесплатный и open source. Включает управление контейнерами, Compose стеками, volumes, networks, образами. Portainer Business Edition (BE) — платный, добавляет RBAC (роли и права для команды), SSO, расширенный аудит и поддержку Kubernetes. Для личных проектов и небольших команд CE более чем достаточно.

Как защитить Portainer от внешнего доступа?

Три надёжных варианта: 1) Привязать порт только к localhost: -p 127.0.0.1:9000:9000 и подключаться через SSH tunnel (ssh -L 9000:localhost:9000 user@server). 2) Поставить nginx reverse proxy с basic auth или fail2ban. 3) Использовать VPN — Portainer доступен только при подключении к VPN. Никогда не открывай Docker socket-based инструменты напрямую в интернет без аутентификации.

Есть ли официальный GUI для Docker?

Docker Desktop — официальное GUI приложение от Docker Inc для Windows и macOS. Включает Docker Engine, Docker Compose, Kubernetes (опционально) и графический интерфейс для управления контейнерами и образами. На Linux Docker Desktop тоже доступен, но требует установки отдельного пакета. Для серверов (Linux без GUI) Docker Desktop не подходит — используй Portainer или Lazydocker.

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x