Перейти к содержанию

Обзор развертывания Portainer на сервере

Предпосылки и предварительные требования

Для успешного развертывания приложения на сервере необходимо выполнение следующих условий:

  • Операционная система: Debian, Ubuntu, CentOS, RHEL или их производные.
  • Права доступа: наличие прав суперпользователя (root) или возможность выполнения команд через sudo.
  • Сетевые требования: порт 9000 должен быть доступен для внешнего подключения.
  • Доступ в интернет: необходим для загрузки образов контейнеров и обновлений пакетов.

Процесс установки приложения

Установка приложения выполняется через развертывание контейнера Docker. Процесс включает следующие этапы:

  1. Обновление системных пакетов и установка необходимых утилит (ca-certificates, curl, gnupg).
  2. Установка платформы Docker:
  3. На системах Debian/Ubuntu используется роль docker-managed-install.
  4. На системах RHEL/CentOS добавляется репозиторий Docker и устанавливаются пакеты docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, docker-compose-plugin.
  5. Установка дополнительных зависимостей Python: python3-pip, python3-requests (или python3-docker для Debian/Ubuntu).
  6. Настройка конфигурации демон-процесса Docker путем копирования файла daemon.json в директорию /etc/docker/.
  7. Запуск и включение автозагрузки сервиса docker через systemd.
  8. Развертывание контейнера 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:
    systemctl start docker
    systemctl enable docker
    
  • Перезагрузка конфигурации Docker (при необходимости):
    systemctl daemon-reload
    
  • Управление контейнером Portainer:
  • Запуск контейнера выполняется автоматически после установки.
  • Остановка контейнера:
    docker stop portainer
    
  • Запуск контейнера:
    docker start portainer
    
  • Перезапуск контейнера:
    docker restart portainer
    
  • Обновление образа и перезапуск:
    docker pull portainer/portainer-ce
    docker restart portainer
    
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×