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