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, а не залишати відкритим усьому інтернету.