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@<machine-address>
Потім відкрийте https://localhost:9443 у браузері. Сертифікат самопідписаний, тож браузер попередить вас — це нормально під час доступу через тунель.
Першого адміністратора створює той, хто відкриє панель першим. Якщо ви відкрили порт в інтернет і пішли пити чай, адміністратором будете не ви. Portainer закриває реєстрацію за кілька хвилин після запуску, але покладатися на це не варто — створіть акаунт одразу.
Чому це небезпечно і що робити
Панель монтує /var/run/docker.sock. Доступ до цього сокета рівнозначний root на машині: через нього можна запустити контейнер із змонтованим root хостом. Звідси правила:
- Не відкривайте порт в інтернет. Або використовуйте SSH-тунель, або вебсервер із сертифікатом і двофакторною автентифікацією.
- Зробіть пароль адміністратора довгим і унікальним, не таким самим, як root-пароль машини.
- Давайте окремим людям окремі акаунти з обмеженими правами, а не спільний логін.
- Якщо панель потрібна рідко, тримайте контейнер зупиненим і запускайте його за потреби:
docker start portainer.
Що в ньому зручно
- Логи з пошуком і підсвічуванням — швидше, ніж
docker logsу текстовій консолі 80×24. - Консоль у контейнер прямо в браузері.
- Стеки — вставте вміст
compose.yaml, натисніть deploy. Добре для одноразових сервісів, але для постійних краще тримати файл на диску під контролем версій: стек, створений у панелі, легко втратити під час перевстановлення. - Томи та образи — видно, що скільки місця займає; це допомагає під час діагностики нестачі місця.
Чого в ньому робити не варто
- Тримати в ньому єдину копію визначень своїх сервісів. Файли
compose.yamlу каталозі на диску переживуть панель. - Оновлювати контейнери кнопкою «recreate», не розуміючи, що станеться з томами. Дивіться оновлення контейнерів.
- Вважати його заміною моніторингу. Portainer показує поточний стан, а не історію, і не надсилає сповіщень — для цього потрібен Uptime Kuma.
Ресурси
Контейнер використовує близько 100 МБ пам'яті та працює на будь-якому тарифі. Дані зберігаються в томі portainer_data: акаунти, налаштування, стеки. Додайте його до свого резервного копіювання або будьте готові налаштовувати панель заново.
Поширені помилки
- Забути, що панель керує лише цією машиною. Вона може керувати й другою машиною, але для цього потрібен агент на ній і відкритий порт між ними.
- Використання тегу
latestдля самої панелі. Велике оновлення змінює формат даних. Закріпіть версію. - Видалення «невикористаного» тому через очищення. Portainer попереджає, але люди натискають кнопку, не читаючи. Томи з базами даних виглядають невикористаними, поки контейнер зупинено — дивіться томи.