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

Сравнение инструментов
| Инструмент | Тип | Особенности | Для кого |
|---|---|---|---|
| Portainer | Web (браузер) | Полнофункциональный, многосерверный | Команды, продакшн |
| Dockge | Web (браузер) | Управление Compose стеками | Самохостеры |
| Lazydocker | TUI (терминал) | Не требует браузера | Разработчики |
| Docker Desktop | Desktop app | Официальный GUI от Docker | Windows/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.ymld— удалить контейнер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.
Что читать дальше по Docker
Чтобы связать тему с соседними практическими материалами, дальше удобно открыть:
- Основные команды Docker — сравнить GUI с базовыми командами Docker.
- docker logs — смотреть логи контейнеров.
- Docker Compose — управлять многосервисными проектами.
- docker rm — удалять контейнеры и образы осознанно.



