Portainer — графический веб-интерфейс для управления Docker: контейнерами, образами, томами и сетями без постоянного набора команд в консоли. Панель разворачивается тем же Docker-демоном, которым управляет, и подходит как для одного VDS, так и для нескольких серверов через агентов.
Для чего нужен Portainer и когда он не нужен
Portainer удобен, когда на сервере уже крутится несколько контейнеров и держать в голове, какой из них от какого образа и с какими портами, становится неудобно. Через веб-интерфейс видно состояние каждого контейнера, его логи и использование ресурсов без набора docker ps и docker logs каждый раз.
Если на сервере один-два контейнера и их конфигурация почти не меняется, Portainer добавляет лишний слой: ещё один процесс, который нужно обновлять и защищать паролем. Для таких случаев консоли вполне достаточно.
Что нужно на сервере для Portainer
Portainer устанавливается на сервер, где уже работает Docker — сама установка Docker на VDS разобрана в статье про настройку Docker на VPS. Сам Portainer запускается одним контейнером и общается с Docker через системный сокет.
По требованиям к ресурсам Portainer один из самых лёгких инструментов в этом классе: даже 1 ГБ оперативной памяти хватает с запасом, потому что сам интерфейс не хранит данные контейнеров — только собственные настройки и список подключённых серверов.
Сравнение Portainer и работы через консоль
Основная причина ставить Portainer — не новые возможности, а то, что привычные команды Docker превращаются в формы и списки.
| Задача | Через консоль | Через Portainer |
|---|---|---|
| Посмотреть логи контейнера | docker logs | просмотр в браузере с фильтром |
| Остановить и удалить контейнер | docker stop + docker rm | кнопка в интерфейсе |
| Посмотреть использование ресурсов | docker stats | графики в разделе контейнера |
| Развернуть стек из нескольких контейнеров | docker compose up | загрузка Compose-файла в форму |
Установка Portainer на VDS
Portainer Community Edition устанавливается двумя командами: создаётся том для данных и поднимается сам контейнер панели.
# Установка Portainer CE на сервер с Docker
docker volume create portainer_data
docker run -d -p 9443:9443 --name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data portainer/portainer-ce:latest
После запуска панель открывается по IP сервера на порту 9443 по HTTPS, где при первом входе нужно создать пароль администратора. Разница между образом, который используется в команде, и запущенным от него контейнером разобрана в статье про образ Docker и контейнер.
Что делать, если Portainer не открывается
Если страница панели не загружается, причина почти всегда в одном из нескольких мест.
- Проверить, что порт 9443 открыт в файрволе сервера и не занят другим сервисом.
- Убедиться, что контейнер portainer запущен — команда
docker psдолжна показывать его в статусе running. - Очистить кеш браузера или открыть страницу в режиме инкогнито — самоподписанный сертификат иногда мешает загрузке.
- Проверить, что путь к сокету Docker в команде запуска указан верно для используемой операционной системы.
- Если образы тянутся из собственного хранилища, проверить его доступность — об этом в статье про приватный Docker Registry.
Частые вопросы
Нужен ли Portainer, если на сервере уже есть SSH-доступ?
SSH-доступ не исключает Portainer — панель не заменяет консоль, а добавляет к ней визуальный обзор того, что происходит в Docker, что особенно удобно, когда с сервером работает несколько человек.
Можно ли управлять несколькими серверами из одного Portainer?
Да, для этого на каждый дополнительный сервер ставится агент Portainer, а главная панель подключается к нему и показывает контейнеры удалённого сервера в том же интерфейсе.
Безопасно ли открывать Portainer по порту 9443 наружу?
Порт сам по себе работает по HTTPS, но панель даёт полный доступ к управлению Docker, поэтому доступ к ней стоит ограничивать по IP или выносить за VPN, а не оставлять открытым всему интернету.