VDS · Docker и контейнеры

Portainer: контейнеры через браузер

Как поставить веб-панель управления контейнерами, чем она удобна и почему её нельзя выставлять в интернет без защиты.

Обновлено 23 августа 2026 г.

Portainer — веб-интерфейс к Docker: список контейнеров, журналы, консоль внутрь, тома, сети, стеки Compose. Удобен, когда не хочется каждый раз заходить по SSH ради «посмотреть, что упало».

Установка

docker volume create portainer_data
docker run -d \
  --name portainer \
  --restart unless-stopped \
  -p 127.0.0.1:9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:2.21.4

Порт привязан к локальному интерфейсу. Открыть панель можно туннелем SSH:

ssh -L 9443:127.0.0.1:9443 root@<адрес-машины>

Дальше https://localhost:9443 в браузере. Сертификат самоподписанный, браузер предупредит — это нормально при доступе через туннель.

Первый администратор создаётся тем, кто первым откроет панель. Если вы опубликовали порт наружу и ушли пить чай, администратором станет не вы. Portainer закрывает регистрацию через несколько минут после старта, но полагаться на это нельзя — заводите учётную запись сразу.

Почему это опасно и как быть

Panel монтирует /var/run/docker.sock. Доступ к этому сокету равносилен root на машине: через него можно запустить контейнер с примонтированным корнем хоста. Отсюда правила:

  • Наружу порт не публикуем. Либо туннель SSH, либо веб-сервер с сертификатом и вторым фактором.
  • Пароль администратора — длинный и уникальный, не тот же, что у root машины.
  • Отдельным людям выдавайте отдельные учётные записи с ограниченными правами, а не общий вход.
  • Если панель нужна редко — держите контейнер остановленным и поднимайте по необходимости: docker start portainer.

Что в ней удобно

  • Журналы с поиском и подсветкой — быстрее, чем docker logs в 80×24 текстовой консоли.
  • Консоль внутрь контейнера прямо в браузере.
  • Стеки — вставили содержимое compose.yaml, нажали развернуть. Хорошо для разовых сервисов, но для постоянных лучше держать файл на диске под контролем версий: стек, созданный в панели, легко потерять при переустановке.
  • Тома и образы — видно, что сколько занимает; помогает при разборе нехватки места.

Чего в ней делать не стоит

  • Держать в ней единственную копию описания сервисов. Файлы compose.yaml в каталоге на диске переживут панель.
  • Обновлять контейнеры кнопкой «recreate» без понимания, что произойдёт с томами. См. обновление контейнеров.
  • Считать её заменой мониторингу. Portainer показывает состояние сейчас, а не историю и не шлёт тревоги — для этого нужен Uptime Kuma.

Ресурсы

Контейнер занимает около 100 МБ памяти, работает на любой ступени. Данные — в томе portainer_data: учётные записи, настройки, стеки. Включите его в резервную копию или будьте готовы настроить панель заново.

Частые ошибки

  • Забыли, что панель управляет только этой машиной. Второй машиной она тоже умеет, но для этого на ней нужен агент и открытый порт между ними.
  • Тег latest у самой панели. Мажорное обновление меняет формат данных. Фиксируйте версию.
  • Удалили «неиспользуемый» том через очистку. Portainer честно предупреждает, но кнопку нажимают не читая. Тома с базами выглядят неиспользуемыми, пока контейнер остановлен, — см. тома.