Portainer CE | INTROSERV
EUR
european

EUR

usa

USD

Ukraine Ua
Ex. VAT Ex. VAT 0%

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

Info

Команда запускається через 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.

Info

У зв'язку з використанням самопідписаного сертифіката браузер відобразить попередження. Це нормально для першого запуску. Необхідно підтвердити перехід на сайт (наприклад, натиснути "Прийняти ризик" або "Перейти на сайт").

Крок 2. Створення користувача

На сторінці реєстрації потрібно буде вказати ім'я користувача (рекомендується admin) та задати надійний пароль.

Tip

Пароль має бути складним, оскільки надає повний доступ до керування контейнерами.

Крок 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

Tip

Видалення тому 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-адрес.

Tip

Будьте обережні з правилами файерволу. Неправильне налаштування може заблокувати ваш доступ до сервера.

Приклад для 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

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA