Перейти к содержимому
Главная страница » Установка Portainer в Docker

Установка Portainer в Docker

Portainer — это мощный веб-интерфейс для управления Docker и Kubernetes кластерами. Он предоставляет интуитивно понятный GUI для управления контейнерами, образами, сетями, томами и другими ресурсами Docker без необходимости использования командной строки.

Интересный факт: Portainer был создан в 2017 году и стал самым популярным веб-интерфейсом для Docker. Сегодня его используют более 500,000 разработчиков и DevOps инженеров по всему миру.

Основные возможности Portainer:

  • Веб-интерфейс — управление Docker через браузер
  • Мониторинг — отслеживание состояния контейнеров и ресурсов
  • Управление образами — загрузка, удаление, обновление образов
  • Сети и тома — настройка сетевых интерфейсов и постоянного хранения
  • Многопользовательский режим — роли и права доступа
  • Поддержка Kubernetes — управление K8s кластерами (EE версия)

Системные требования

Минимальные требования:

  • Docker: версия 20.10+ (рекомендуется 24.0+)
  • Docker Compose: версия 2.0+ (встроенный в Docker)
  • RAM: минимум 512 MB (рекомендуется 1 GB+)
  • Диск: минимум 100 MB свободного места
  • Сеть: доступ к порту 9000 (или другому настроенному)

Рекомендуемые требования:

  • Docker: версия 24.0 LTS
  • RAM: 2 GB или больше
  • Диск: SSD с 500 MB+ свободного места
  • Процессор: 1+ ядро
  • Сеть: статический IP адрес

Подготовка системы

Откройте свой терминал и подключитесь к серверу (VPS) с помощью SSH. Я использую SSH клиент MobaXterm.

Вводим логин root и пароль сервера.

Теперь мы подключены к серверу готовы вводить команды серверу по SSH.

Проверка установки Docker

Перед установкой Portainer убедитесь, что Docker работает корректно:

# Проверяем версию Docker
docker --version

# Проверяем статус Docker сервиса
sudo systemctl status docker

# Проверяем, что Docker может запускать контейнеры
docker run hello-world
Если Docker еще не установлен, то установим по инструкции установка Docker на Linux Ubuntu

Проверка свободных портов

Убедитесь, что порт 9000 (или другой выбранный) свободен:

# Проверяем занятые порты
sudo netstat -tulpn | grep :9000

# Или используя ss команду
sudo ss -tulpn | grep :9000

# Если порт занят, останавливаем конфликтующий сервис
sudo systemctl stop conflicting-service

Установка Portainer CE

Способ 1: Установка через Docker run (рекомендуется для быстрого старта)

Базовая установка

# Запускаем Portainer CE
docker run -d \
  --name portainer \
  --restart=always \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/portainer:/data \
  portainer/portainer-ce:latest

Способ 2: Установка через Docker Compose (рекомендуется для продакшена)

Создайте файл docker-compose.yml:

version: '3.8'

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/portainer:/data
      - /etc/localtime:/etc/localtime:ro
    environment:
      - TZ=Europe/Moscow
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.5'
        reservations:
          memory: 256M
          cpus: '0.25'
    networks:
      - portainer_network

networks:
  portainer_network:
    driver: bridge
    name: portainer_network
Рекомендация: Используйте Docker Compose для продакшен-среды, так как это обеспечивает лучшую управляемость и возможность версионирования конфигурации.

Первый запуск и настройка

Доступ к веб-интерфейсу

После успешного запуска откройте браузер и перейдите по адресу:

http://your-server-ip:9000

Первоначальная настройка

Создание администратора

  • Введите имя пользователя (например, admin)
  • Создайте надежный пароль (минимум 12 символов)
  • Подтвердите пароль
Если вы не создадите пользователя с правами администратора в течение 5 минут после запуска, Portainer отключится из соображений безопасности.

Для решения проблемы, необходимо остановить и запустить контейнер.

docker stop portainer
docker start portainer

После этого опять войдите на страницу portainer http://your-server-ip:9000 и задайте пароль для admin.

На этом базовая установка Portainer закончена. Далее произведем дополнительные настройки в зависимости от использования.

Выбор окружения

  • Local Docker Environment — для управления локальным Docker
  • Remote Docker Environment — для подключения к удаленному Docker
  • Agent — для подключения через Portainer Agent

Безопасность и аутентификация

1. Настройка HTTPS (рекомендуется для продакшена)

Использование Nginx как reverse proxy

Создайте конфигурацию Nginx:

server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name your-domain.com;

    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;

    location / {
        proxy_pass http://localhost:9000;
        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;
        
        # WebSocket поддержка
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Настройка аутентификации

Локальная аутентификация

  • Settings → Authentication
  • MethodInternal
  • Создайте пользователей с разными ролями

LDAP аутентификация

  • Settings → Authentication
  • MethodLDAP
  • Настройте параметры LDAP сервер

Решение проблем

Проблема 1: Portainer не запускается

# Проверяем статус контейнера
docker ps -a | grep portainer

# Просматриваем логи
docker logs portainer

# Проверяем, что порт 9000 свободен
sudo netstat -tulpn | grep :9000

# Перезапускаем контейнер
docker restart portainer

Проблема 2: Ошибка доступа к Docker socket

# Проверяем права доступа к Docker socket
ls -la /var/run/docker.sock

# Исправляем права доступа
sudo chmod 666 /var/run/docker.sock

# Добавляем пользователя в группу docker
sudo usermod -aG docker $USER

# Перезаходим в систему или выполняем
newgrp docker

Часто задаваемые вопросы

Вопрос 1: Какой порт использует Portainer по умолчанию?

Ответ: Portainer по умолчанию использует порт 9000. Вы можете изменить его, указав другой порт в команде запуска:

docker run -d -p 8080:9000 portainer/portainer-ce:latest

Вопрос 2: Можно ли использовать Portainer без Docker socket?

Ответ: Да, можно использовать Portainer Agent для подключения к удаленным Docker хостам без прямого доступа к Docker socket.

Вопрос 3: Как обновить Portainer до новой версии?

Ответ: Для обновления Portainer:

# Останавливаем текущий контейнер
docker stop portainer

# Удаляем старый контейнер
docker rm portainer

# Запускаем новую версию
docker run -d \
  --name portainer \
  --restart=always \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/portainer:/data \
  portainer/portainer-ce:latest

Дальнейшие шаги

После успешной установки Portainer вы можете:

  1. Настроить мониторинг — добавить метрики, алерты и уведомления
  2. Настроить CI/CD — создать шаблоны для развертывания
  3. Настроить безопасность — включить двухфакторную аутентификацию
  4. Оптимизировать производительность — настроить кеширование и ограничения ресурсов

Полезные ресурсы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *