EUR
european

EUR

usa

USD

Russian Ru
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://<IP-адрес-сервера>: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" доступен просмотр логов контейнера в реальном времени.
  • Инспекция: Отображение полной информации о контейнере в формате JSON: переменные среды, точки монтирования, настройки сети.
  • Статистика: Графики потребления CPU, памяти и сети для каждого контейнера. Помогает определить потребление ресурсов отдельными сервисами.
  • Подключение к консоли: Возможность открыть веб-терминал внутри контейнера для выполнения команд.

Стеки (Stacks)

Реализация Docker Compose в веб-интерфейсе. Позволяет загружать или создавать YAML-файлы непосредственно через браузер для развертывания многосоставных приложений.

Образы (Images)

  • Управление Docker-образами.
  • Скачать: Возможность загрузки образов (например, nginx:latest или mysql:8.0) непосредственно из интерфейса.
  • Удаление: Очистка неиспользуемых образов для освобождения дискового пространства.

Томы (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