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 честно предупреждает, но кнопку нажимают не читая. Тома с базами выглядят неиспользуемыми, пока контейнер остановлен, — см. тома.