Portainer
Веб-интерфейс для управления Docker: контейнеры, образы, тома и стеки видно и можно менять мышкой, без команд в терминале.
Что такое Portainer
Portainer — веб-панель управления Docker. Вместо docker ps, docker logs и docker exec в терминале вы открываете браузер и видите список контейнеров, их состояние, логи, потребление ресурсов — и управляете ими мышкой.
По духу это панель управления хостингом, только не для сайтов и почты, а для контейнеров. Умеет не только Docker: поддерживаются Docker Swarm, Kubernetes и Podman.
Есть две редакции: Community Edition — бесплатная и с открытым кодом, её ставят в большинстве случаев; Business Edition — коммерческая, добавляет RBAC с ролями и пользователями, интеграцию с корпоративными каталогами и поддержку.
Что умеет
- Контейнеры — старт, стоп, пересоздание, логи в реальном времени, статистика по CPU и памяти, консоль внутрь контейнера прямо из браузера.
- Образы — скачать, удалить, почистить неиспользуемое.
- Тома и сети — посмотреть, что есть, кто чем пользуется, удалить осиротевшее.
- Stacks — развернуть Docker Compose-стек, вставив YAML в веб-редактор или подтянув его из Git-репозитория с автообновлением. Это уже подход в духе GitOps.
- App Templates — каталог готовых приложений в один клик.
- Реестры — подключение приватных registry, включая Docker Hub и свои.
- Environments — несколько хостов в одной панели через Portainer Agent.
Portainer Server и Agent
Portainer Server — сама панель. Чтобы управлять другими машинами, на них ставят Portainer Agent: он даёт доступ к Docker API удалённого хоста, и все узлы видны в одном интерфейсе. Для машин за NAT или в чужой сети есть Edge Agent — он сам инициирует соединение к серверу.
Порты: 9443 — HTTPS-интерфейс, 8000 — туннель Edge Agent, 9001 — агент.
Стандартная установка:
docker volume create portainer_data
docker run -d -p 9443:9443 --name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Первым делом после запуска задают пароль администратора. Portainer намеренно блокирует создание админа, если панель провисела без настройки — тайм-аут снимается перезапуском контейнера. Это защита от того, что кто-то создаст админа раньше вас.
Главное про безопасность
Строка -v /var/run/docker.sock:/var/run/docker.sock в примере выше — не деталь, а суть. Доступ к Docker-сокету равносилен root-доступу к хосту: имея его, можно запустить контейнер с примонтированной корневой файловой системой и сделать с сервером что угодно. Никакая изоляция контейнера от этого не спасает.
Отсюда правила:
- Не выставляйте Portainer в интернет без необходимости. Публичная панель управления Docker — это несанкционированный доступ ко всему серверу, а не «просто удобная админка».
- Если доступ снаружи нужен — только по HTTPS с нормальным SSL-сертификатом, за Traefik или Nginx, желательно с ограничением по IP.
- Лучший вариант для одиночного сервера — вообще не публиковать порт, а ходить через SSH-туннель:
ssh -L 9443:localhost:9443 user@server. - Пароль администратора — длинный и уникальный.
Кому нужен, а кому нет
Portainer полезен, когда нужно быстро посмотреть логи упавшего контейнера с телефона, когда с сервером работают люди, для которых CLI — барьер, или когда хостов несколько и хочется видеть их в одном месте. Для домашней лаборатории и небольших команд это заметная экономия времени.
Ограничение тоже стоит знать: изменения, сделанные мышкой, нигде не зафиксированы. Пересоздали контейнер через UI с другими параметрами — и ваш docker-compose.yml больше не описывает реальность. Для продакшена это плохо, поэтому там Portainer используют как окно для наблюдения, а разворачивают через Compose-файлы в Git, Ansible или стеки Portainer, привязанные к репозиторию.
Ресурсов панель почти не потребляет — это лёгкий Go-бинарник, который спокойно живёт на самом простом VPS рядом с рабочими сервисами.
Альтернативы
Dockge — легче, ориентирован на Compose-стеки и не ломает файлы. Rancher — тяжелее и про Kubernetes целиком. Lazydocker — тот же обзор, но в терминале, без веб-сервера. Cockpit — панель для Linux-хоста в целом, с контейнерами как одним из разделов.
Связанные термины
- Docker — то, чем управляет Portainer
- Docker Compose — формат стеков, которые он разворачивает
- Панели управления хостингом — ближайший аналог по назначению
- Traefik — чем закрывают панель по HTTPS
- Несанкционированный доступ — риск открытой наружу панели
- Docker Registry — откуда Portainer тянет образы
Готовы запустить GPU-задачу?
Запустить GPU-сервер