Установка и настройка 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://<IP-адрес-сервера>: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" доступен просмотр логов контейнера в реальном времени.
- Инспекция: Отображение полной информации о контейнере в формате 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
Удаление тома 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