Обзор развертывания Portainer на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания приложения на сервере необходимо выполнение следующих условий:
- Операционная система: Debian, Ubuntu, CentOS, RHEL или их производные.
- Права доступа: наличие прав суперпользователя (
root) или возможность выполнения команд черезsudo. - Сетевые требования: порт
9000должен быть доступен для внешнего подключения. - Доступ в интернет: необходим для загрузки образов контейнеров и обновлений пакетов.
Процесс установки приложения¶
Установка приложения выполняется через развертывание контейнера Docker. Процесс включает следующие этапы:
- Обновление системных пакетов и установка необходимых утилит (
ca-certificates,curl,gnupg). - Установка платформы Docker:
- На системах Debian/Ubuntu используется роль
docker-managed-install. - На системах RHEL/CentOS добавляется репозиторий Docker и устанавливаются пакеты
docker-ce,docker-ce-cli,containerd.io,docker-buildx-plugin,docker-compose-plugin. - Установка дополнительных зависимостей Python:
python3-pip,python3-requests(илиpython3-dockerдля Debian/Ubuntu). - Настройка конфигурации демон-процесса Docker путем копирования файла
daemon.jsonв директорию/etc/docker/. - Запуск и включение автозагрузки сервиса
dockerчерезsystemd. - Развертывание контейнера Portainer с использованием образа
portainer/portainer-ce.
Контейнеры Docker и их запуск¶
Приложение работает в виде одного контейнера Docker с именем portainer. Конфигурация запуска включает следующие параметры:
- Образ:
portainer/portainer-ce. - Политика перезапуска:
always(контейнер автоматически перезапускается при сбое или перезагрузке сервера). - Маппинг портов: локальный порт
9000привязан к порту9000внутри контейнера. - Монтирование томов:
/var/run/docker.sockмонтируется в/var/run/docker.sockвнутри контейнера для управления Docker-хостом.- Автоматическая загрузка образа: параметр
pull: yesобеспечивает обновление образа при запуске.
Права доступа и безопасность¶
Конфигурация безопасности и управление доступом реализованы следующим образом:
- Файл конфигурации Docker
daemon.jsonразмещается в/etc/docker/с правами доступа0644, владельцемrootи группойroot. - Сервис
dockerзапускается от имени пользователяrootи включается в автозагрузку системы. - Контейнер
portainerимеет прямой доступ к сокету Docker, что позволяет управлять всеми контейнерами на хосте. - Порт
9000открыт для внешнего доступа, что требует настройки брандмауэра сервера для фильтрации входящего трафика.
Запуск, остановка и обновление¶
Управление сервисом Docker и контейнером Portainer осуществляется через стандартные команды systemd и docker:
- Запуск и включение автозагрузки Docker:
- Перезагрузка конфигурации Docker (при необходимости):
- Управление контейнером Portainer:
- Запуск контейнера выполняется автоматически после установки.
- Остановка контейнера:
- Запуск контейнера:
- Перезапуск контейнера:
- Обновление образа и перезапуск: