Portainer CE
Рівень: Початківець
Час виконання: ~30 хвилин
Мета: Після завершення цього посібника ви отримаєте повністю налаштовану панель Portainer CE, захищену за протоколом HTTPS та готову до керування Docker-інфраструктурою вашого сервера.
Вступ
Контейнеризація на базі Docker стала стандартом для серверної інфраструктури, забезпечуючи передбачуваність розгортання та ефективне масштабування сервісів. Однак при запуску десятків контейнерів керування лише через командний рядок стає незручним. Portainer CE вирішує цю проблему, надаючи зручний веб-інтерфейс для адміністрування Docker: через нього доступні всі контейнери, їхні статуси, логи та ресурси, а керування виконується в кілька кліків без втрати контролю над системою.
Підготовка сервера
Перед встановленням необхідно переконатися, що сервер готовий до розгортання Portainer. Сам Portainer працює як контейнер, тому потрібен лише встановлений Docker.
Вимоги до системи
- Операційна система: Будь-який дистрибутив Linux (Ubuntu 20.04+, Debian 11+, CentOS/Rocky Linux 8+), що використовується в хостингу.
- Права: root-доступ або можливість виконання команд через sudo.
- Апаратні вимоги: Мінімум 1 ГБ RAM та 10 ГБ вільного дискового простору.
- Мережеві вимоги: Відкриті порти 8000 та 9443 для доступу до Portainer, порт 443 для налаштування reverse proxy.
Перевірка наявності Docker
Виконайте підключення до сервера по SSH. Перш за все перевірте, чи встановлено Docker та чи запущено демон:
docker --version sudo systemctl status docker
Якщо відображається версія Docker та статус active (running), крок встановлення Docker можна пропустити.
Встановлення Docker (за потреби)
На нових серверах Docker, як правило, відсутній. Для встановлення виконайте стандартний скрипт (для Debian/Ubuntu):
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo systemctl enable docker sudo systemctl start docker
Для встановлення плагіна Docker Compose (якщо він не встановився на попередньому етапі) виконайте:
sudo apt-get install docker-compose-plugin # For Debian/Ubuntu # or sudo dnf install docker-compose-plugin # For CentOS/Rocky Linux
Перевірте версію встановленого docker compose:
docker compose version
Розгортання Portainer CE у Docker
Існує два основних способи запуску Portainer: через команду docker run (швидкий старт) та через docker-compose.yml (зручно для версіонування конфігурації).
Спосіб 1: Запуск через docker run
Виконайте наступну команду на сервері:
sudo docker run -d \ -p 8000:8000 \ -p 9443:9443 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest
Команда запускається через sudo, оскільки поточний користувач ще не доданий до групи docker. Якщо надалі планується використовувати docker без sudo, додайте користувача до групи docker: sudo usermod -aG docker $USER. Після виконання команди потрібно перелогінитися або перезапустити сесію.
Пояснення параметрів:
- -d – Запуск контейнера у фоновому режимі.
- -p 8000:8000 – Проброс порту для Edge-агентів та тунелів.
- -p 9443:9443 – Проброс порту для захищеного веб-інтерфейсу (HTTPS). Portainer автоматично генерує self-signed SSL сертифікат.
- --name portainer – Присвоєння контейнеру зрозумілого імені.
- --restart=always – Політика автоматичного перезапуску контейнера при збоях або перезавантаженні сервера.
- -v /var/run/docker.sock:/var/run/docker.sock – Монтування сокета Docker всередину контейнера Portainer. Це забезпечує можливість Portainer взаємодіяти з демоном Docker на хості та керувати ним.
- -v portainer_data:/data – Створення іменованого volume для зберігання даних Portainer (користувачі, налаштування, конфігурації підключень).
- portainer/portainer-ce:latest – Образ з останньою стабільною версією Community Edition.
Спосіб 2: Запуск через docker-compose
Для використання даного способу створіть директорію та файл docker-compose.yml:
mkdir ~/portainer-docker cd ~/portainer-docker nano docker-compose.yml
Вставте наступний вміст:
services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always ports: - "8000:8000" - "9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data volumes: portainer_data:
Збережіть файл та виконайте команду:
docker compose up -d
Первинний запуск та налаштування веб-інтерфейсу
Після запуску контейнера Portainer стає доступним по мережі.
Крок 1. Підключення до веб-інтерфейсу
Відкрийте браузер та перейдіть за адресою: https://<server-IP-address>:9443.
У зв'язку з використанням самопідписаного сертифіката браузер відобразить попередження. Це нормально для першого запуску. Необхідно підтвердити перехід на сайт (наприклад, натиснути "Прийняти ризик" або "Перейти на сайт").

Крок 2. Створення користувача
На сторінці реєстрації потрібно буде вказати ім'я користувача (рекомендується admin) та задати надійний пароль.
Пароль має бути складним, оскільки надає повний доступ до керування контейнерами.
Крок 3. Підключення середовища
Після створення користувача Portainer запропонує підключити середовища. На цьому етапі можна або підключити локальний Docker (який вже доступний завдяки змонтованому сокету), або перейти до додавання віддалених середовищ через кнопку "Add Environments". Віддалені середовища корисні, коли потрібно керувати кількома серверами з одного інтерфейсу Portainer: наприклад, додати Docker-хости в різних ЦОД або сервери з Kubernetes. Підключення виконується через агенти Portainer або по API з використанням TLS-сертифікатів.
- Виберіть пункт "Get Started". Це базовий сценарій з одним сервером.

- Portainer автоматично виявить локальний Docker сокет. Він відображатиметься як "local".

- Натисніть на нього для завершення налаштування.
Налаштування завершено. Відкриється дашборд (головний екран) Portainer з короткою статистикою по контейнерах, образах, volume та мережах.

Основні можливості Portainer
Розглянемо основні розділи інтерфейсу, що використовуються для щоденних завдань адміністрування.
Панель (Dashboard)
Стартовий екран, що відображає загальну картину: кількість запущених та зупинених контейнерів, кількість завантажених образів. Дозволяє швидко оцінити стан сервера.
Контейнери (Containers)
- Центральний розділ керування. Відображає список усіх контейнерів.
- Керування контейнером: Запуск, зупинка, перезапуск, видалення контейнера одним кліком.
- Логи (Logs): У вкладці "Logs" доступний перегляд логів контейнера в реальному часі.
- Інспекція (Inspect): Відображення повної інформації про контейнер у форматі JSON: змінні середовища, точки монтування, налаштування мережі.
- Статистика (Stats): Графіки споживання CPU, пам'яті та мережі для кожного контейнера. Допомагає визначити споживання ресурсів окремими сервісами.
- Підключення до консолі (Exec console): Можливість відкрити веб-термінал всередину контейнера для виконання команд.
Стеки (Stacks)
Реалізація Docker Compose у веб-інтерфейсі. Дозволяє завантажувати або створювати YAML-файли безпосередньо через браузер для розгортання багатоскладових застосунків.
Образи (Images)
- Керування Docker-образами.
- Завантажити (Pull): Можливість завантаження образів (наприклад, nginx:latest або mysql:8.0) безпосередньо з інтерфейсу.
- Видалення (Remove): Очищення невикористовуваних образів для звільнення дискового простору.
Томи (Volumes)
Керування постійними томами даних. Відображає існуючі томи, їх прив'язку до контейнерів та займане місце. Критично важливо для баз даних та користувацьких даних.
Мережі (Networks)
Дозволяє створювати ізольовані мережи для взаємодії контейнерів.
Відкат змін (Видалення Portainer)
Якщо вам необхідно повністю видалити Portainer та його дані з сервера, виконайте наступні кроки:
1. Зупиніть та видаліть контейнер Portainer:
sudo docker stop portainer sudo docker rm portainer
2. Видаліть том з даними Portainer (попередження: ця дія незворотна):
sudo docker volume rm portainer_data
Видалення тому portainer_data призведе до безповоротної втрати всіх користувачів, налаштувань та конфігурацій Portainer.
3. Видаліть образ Portainer (опціонально):
sudo docker rmi portainer/portainer-ce:latest
Безпека та рекомендації
Для Production потрібне додаткове налаштування безпеки Portainer.
Використання Reverse Proxy (Nginx/Apache)
Рекомендується налаштувати піддомен (наприклад, portainer.domain.com) та проксувати трафік через Nginx. Це забезпечить:
- Використання валідного SSL-сертифіката (безкоштовного від Let's Encrypt або платного SSL, наприклад, від Sectigo).
- Централізоване логування доступу.
- Можливість налаштування додаткової аутентифікації.
1. Встановлення та налаштування Nginx
Встановіть Nginx:
sudo apt install -y nginx # For Debian/Ubuntu # or sudo dnf install -y nginx # For CentOS/Rocky Linux
Створіть конфігураційний файл для Portainer:
sudo nano /etc/nginx/sites-available/portainer.conf
Додайте наступну конфігурацію, замінивши <YOUR_DOMAIN> на ваш домен, який вказує на IP сервера:
server { listen 80; server_name
; location / { proxy_pass https://localhost:9443; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; # Timeouts for long operations proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; } }
Активуйте конфігурацію:
sudo ln -s /etc/nginx/sites-available/portainer.conf /etc/nginx/sites-enabled/
Перевірте конфігурацію Nginx:
sudo nginx -t
Якщо перевірка успішна, перезапустіть Nginx:
sudo systemctl restart nginx
2. Налаштування HTTPS (рекомендується)
Встановіть Certbot:
sudo apt install -y certbot python3-certbot-nginx
Отримайте SSL-сертифікат:
sudo certbot --nginx -d
Замініть <YOUR_DOMAIN> на ваш домен.
У процесі встановлення введіть email, наприклад, admin@<YOUR_DOMAIN>, потім двічі введіть Y.
Перевірте автоматичне оновлення сертифікатів:
sudo systemctl list-timers | grep certbot
Налаштування Firewall
Прямий доступ до портів Portainer рекомендується обмежити. Дозвольте доступ до портів 8000 та 9443 лише з довірених IP-адрес.
Будьте обережні з правилами файерволу. Неправильне налаштування може заблокувати ваш доступ до сервера.
Приклад для UFW:
sudo ufw allow from 192.168.1.0/24 to any port 9443 proto tcp sudo ufw deny 9443
Де 192.168.1.0/24 - підмережа довірених IP-адрес.
Регулярні оновлення
Рекомендується відстежувати вихід нових версій Portainer та своєчасно виконувати оновлення контейнера для усунення потенційних вразливостей.
Перевірка роботи
Для перевірки коректності роботи Portainer виконайте наступні дії.
1. Візуальна перевірка: У розділі "Containers" переконайтеся, що контейнер portainer має статус running.
2. Створення тестового контейнера:
- Перейдіть у розділ "Containers", натисніть кнопку "Add container".
- У полі "Name" вкажіть test-nginx.
- У полі "Image" вкажіть nginx:alpine.
- У розділі "Port mapping" вкажіть хост-порт 8080, контейнерний порт 80.
- Натисніть "Deploy the container".
3. Перевірка доступності:
- Дочекайтеся появи контейнера у списку зі статусом running.
- Відкрийте браузер та перейдіть за адресою
http://<YOUR_IP_ADDRESS>:8080. Повинна відобразитися вітальна сторінка Nginx.
4. Перевірка керування:
- У Portainer знайдіть контейнер test-nginx та натисніть кнопку "Stop".
- Оновіть сторінку з Nginx у браузері – доступ повинен бути відсутнім.
- Натисніть "Start" – доступ до сторінки повинен відновитися.
Усунення несправностей
Проблема 1: Не вдається відкрити веб-інтерфейс Portainer за адресою https://<YOUR_IP_ADDRESS>:9443
Можлива причина: Файервол блокує порт 9443.
Рішення: Перевірте правила файерволу та переконайтеся, що порт відкрито. Для UFW: sudo ufw status | grep 9443.
Проблема 2: Помилка "Cannot connect to the Docker daemon" при виконанні команд Docker.
Можлива причина: Демон Docker не запущено, або у користувача немає прав.
Рішення: Запустіть демон: sudo systemctl start docker. Якщо ви додали користувача до групи docker, вийдіть із системи та зайдіть знову.
Проблема 3: Контейнер Portainer не запускається і одразу падає (статус exited).
Можлива причина: Конфлікт портів або пошкоджений образ.
Рішення: Перевірте, чи не зайнятий порт 9443 іншим застосунком: sudo ss -tulpn | grep 9443. Спробуйте переназначити порт та перезапустити контейнер: sudo docker restart portainer.
Висновок
Portainer CE надає ефективний інструмент для візуального контролю та керування Docker-контейнерами. Можливість оперативно оцінити стан контейнерів, проаналізувати графіки споживання ресурсів та виконати типові операції без підключення до SSH дозволяє скоротити час реакції на інциденти та спростити повсякденне адміністрування.
Цей інструмент може бути корисним при необхідності надання обмеженого доступу до керування контейнерами розробникам або менш досвідченим співробітникам без видачі прямого доступу до командного рядка сервера. Portainer CE є стандартним рішенням для візуалізації контейнерної інфраструктури та рекомендується до використання на серверах.
Document Version: 1.1
Last Updated: March 2026
Owner: Technical Documentation Team