Гид по технологиям

Portainer: графический интерфейс для управления Docker и Kubernetes

10 min read DevOps Обновлено 18 Dec 2025
Portainer — графический интерфейс для Docker
Portainer — графический интерфейс для Docker

Portainer — удобный графический интерфейс для управления Docker и Kubernetes. В этой статье показано, как установить Portainer, подключить эндпоинты, создавать контейнеры и стеки, а также даны рекомендации по безопасности, резервному копированию и эксплуатации.

Иллюстрация Portainer на ноутбуке

Быстрые ссылки

  • Установка Portainer
  • Первый запуск
  • Эндпоинты
  • Управление контейнерами
  • Создание контейнера
  • Использование стеков
  • Удобство Portainer

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

Portainer достиг версии 2.0, где появилась поддержка Kubernetes. Инструмент также поддерживает Docker Swarm и Azure ACI. В этом руководстве мы останемся в рамках локальной установки Docker, чтобы охватить основные сценарии использования Portainer.

Существует две редакции Portainer: бесплатная и открытая Community Edition (CE) и коммерческая Business. Business добавляет централизованное управление, расширенные политики доступа и квоты, полезные для корпоративных сред.

Важно: перед установкой убедитесь, что Docker установлен и запущен. Для полного набора функций Portainer рекомендуется Docker 19.03 или новее.

Что такое Portainer (одно предложение)

Portainer — это веб-интерфейс, который отображает объекты Docker (контейнеры, образы, тома, сети) и позволяет управлять ими через GUI вместо CLI.

Установка Portainer

Перед началом проверьте версию Docker:

docker --version

Создайте Docker-том для хранения данных Portainer. Этот том будет хранить конфигурации, пользователей и состояние приложения.

docker volume create portainer_data

Запустите контейнер Portainer:

docker run -d -p 9000:9000 --name=portainer --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Эта команда загрузит образ portainer/portainer-ce, запустит контейнер в фоновом режиме (-d) и примонтирует том portainer_data в /data внутри контейнера. Сокет Docker на хосте проброшен внутрь контейнера, что позволяет Portainer управлять локальным Docker.

Советы по установке:

  • Если вы используете SELinux/AppArmor или специальную политику безопасности, проверьте разрешения на /var/run/docker.sock.
  • Для публичного доступа используйте обратный прокси (nginx, Traefik) и SSL.
  • Для production-окружения рассмотрите использование Portainer Business для централизованной аутентификации и RBAC.

Панель эндпоинтов Portainer

Первый запуск

Откройте браузер по адресу http://localhost:9000. При первом входе задайте пароль для пользователя admin. После входа вы попадёте на домашнюю страницу.

Экран настроек Portainer

Перед началом работы проверьте настройки приложения. В меню слева найдите «Настройки» и проверьте следующие ключевые опции:

  • Политики безопасности и ограничения для неадминистраторов.
  • Пользовательский логотип приложения.
  • Отказ от анонимной отправки статистики использования.

Эти параметры помогают адаптировать Portainer под политику вашей организации.

Экран аутентификации Portainer

Подменю «Аутентификация» позволяет выбрать способ входа пользователей. По умолчанию Portainer использует встроенную базу пользователей, но можно подключить:

  • LDAP / Active Directory
  • OAuth (GitHub, GitLab, Azure AD и др.)

Если вы используете встроенную базу, переходите в «Пользователи», чтобы создать аккаунты и распределить их по командами.

Эндпоинты

Portainer управляет несколькими Docker-эндпоинтами. По умолчанию вы увидите «local» — локальный Docker Engine.

Управление эндпоинтами в Portainer

Чтобы добавить новый эндпоинт, перейдите в раздел «Эндпоинты» и нажмите «Добавить эндпоинт». Выберите тип подключения (Docker, Agent, Azure ACI, Kubernetes) и укажите параметры подключения.

Советы при подключении удалённых хостов:

  • При использовании Portainer Agent разверните агент на удалённом хосте для более безопасного подключения.
  • Для подключения к удалённому Docker Engine по TCP используйте TLS и сертификаты.
  • Для Kubernetes убедитесь, что у вас корректный kubeconfig и права доступа.

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

Управление контейнерами

Выберите эндпоинт «local» на домашней странице, чтобы открыть полноценный интерфейс управления. На дашборде видны текущие контейнеры, образы и тома.

Дашборд Portainer

Перейдите в раздел «Контейнеры». Вы увидите таблицу с текущими контейнерами, статусом и ключевыми метриками.

Экран управления контейнерами Portainer

Выбор действия:

  • Отметьте чекбокс рядом с контейнером и используйте кнопки сверху, чтобы запустить, остановить, перезапустить или удалить его.
  • Запущенные контейнеры отображают зелёный статус running, остановленные — красный stopped.

Важно: если Portainer запущен как контейнер, не останавливайте его, иначе потеряете доступ к веб-интерфейсу.

Нажмите на имя контейнера, чтобы перейти в его детали. Там можно:

  • Просмотреть свойства контейнера и параметры запуска.
  • Создать новый образ на основе текущего состояния контейнера.
  • Управлять сетевыми подключениями.

Детали контейнера в Portainer

Кнопки статуса контейнера:

  • Logs — показывают логи контейнера.
  • Inspect — инспекция манифеста Docker.
  • Stats — статистика использования ресурсов (CPU, память, сеть, I/O).
  • Console — интерактивная оболочка в контейнере.
  • Attach — подключение к процессу в foreground.

Использование лога и консоли помогает отладке при ошибках запуска.

Создание контейнера

Вернитесь в раздел «Контейнеры» и нажмите «Добавить контейнер».

Создание контейнера в Portainer

Последовательность действий:

  1. Задайте имя контейнера.
  2. Укажите образ (например, wordpress:latest для публичного образа Docker Hub).
  3. Выберите реестр, если образ хранится в приватном регистре.

Управление регистрами в Portainer

Чтобы использовать приватный реестр, добавьте его в «Регистры» в настройках: URL, имя пользователя и пароль. Это также помогает избежать ограничений Docker Hub для неаутентифицированных запросов.

Перед развёртыванием проверьте дополнительные опции:

  • Проброс портов (port binding).
  • Автопул образа перед развёртыванием.
  • Удаление контейнера при завершении (auto-remove).

Расширенные настройки контейнера

Нижняя часть формы содержит «расширенные настройки», которые эквивалентны опциям docker run. Там можно задать:

  • Команду и entrypoint.
  • Монтирование томов.
  • Сети и алиасы.
  • Переменные окружения.
  • Ограничения ресурсов (CPU, память).

Совет: если вы знакомы с CLI, настройка через GUI отразит те же параметры, что и docker run.

Критерии приёмки для успешного развёртывания контейнера:

  • Контейнер создан и переходит в состояние running.
  • Логи контейнера не содержат фатальных ошибок запуска.
  • Служба доступна по назначенному порту (если применимо).
  • Если контейнер использует тома — данные сохраняются между перезапусками.

Использование стеков

Одиночный экран создания контейнера подходит для простых задач. Для связанных сервисов используйте стеки на основе docker-compose v2.

Управление стеками в Portainer

Перейдите в «Стеки» и нажмите «Добавить стек». Portainer не имеет визуального билдера стеков. Нужно вставить или загрузить docker-compose.yml или указать Git-репозиторий с файлом.

Создание стека в Portainer

Перед деплоем вы можете задать переменные окружения и уровень контроля доступа. Нажмите «Deploy the stack», чтобы Portainer подтянул образы и создал контейнеры.

Управление стеком в Portainer

В списке стеков можно управлять всем набором контейнеров разом: остановить, удалить стек, дублировать или создать шаблон.

Шаблоны приложений в Portainer

Шаблоны позволяют быстро развернуть часто используемые конфигурации. Portainer поставляется с набором встроенных шаблонов, а вы можете создать свои.

Удобство использования Portainer

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

Управление Docker-образами в Portainer

Дополнительные возможности:

  • Экран Images: просмотр, pull, import, export и удаление образов.
  • Screens Network и Volumes: просмотр и управление сетями и томами.
  • Events: лог всех действий Docker Engine — полезно для аудита и отладки.

Рекомендации по безопасности

Portainer даёт мощный доступ к Docker-окружению, поэтому безопасность критична.

Лучшие практики:

  • Всегда используйте HTTPS/SSL при доступе к веб-интерфейсу.
  • Подключайте внешние системы аутентификации (LDAP, OAuth) для централизованного управления пользователями.
  • Применяйте RBAC: давайте минимальные права, необходимые для работы.
  • Разворачивайте Portainer Agent на удалённых хостах вместо прямого проброса Docker сокета.
  • Регулярно обновляйте Portainer и Docker до последних патчей безопасности.
  • Ограничивайте доступ к порту 9000 на уровне брандмауэра или прокси.

Таблица угроз и mitigations:

УгрозаМера защиты
Неавторизованный доступ к UIHTTPS, сложные пароли, MFA если поддерживается
Доступ к Docker сокетуИспользовать Agent, не пробрасывать сокет напрямую
Утечка образовПриватные реестры с аутентификацией
Неправильные политики запускаRBAC и ограниченные права команд

Резервное копирование и миграция данных

Данные Portainer хранятся в томе, который вы создали (portainer_data). Резервное копирование — это обычное копирование содержимого тома.

Примеры резервного копирования тома:

docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar czvf /backup/portainer_data.tgz -C /data .

Восстановление:

docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzvf /backup/portainer_data.tgz"

Миграция на другой хост:

  1. Сделайте бэкап тома как файл.
  2. Перенесите архив на новый хост.
  3. Восстановите в новом томе и запустите контейнер Portainer.

Совет: при миграции между версиями Portainer проверьте совместимость данных в релиз-нотах.

Роль‑ориентированные контрольные списки

Контрольный список для администратора:

  • Установить Portainer и настроить TLS.
  • Настроить внешнюю аутентификацию.
  • Создать команды и назначить права.
  • Настроить резервное копирование тома данных.
  • Включить аудит событий.

Контрольный список для разработчика:

  • Подключить среду разработки как эндпоинт (через Agent).
  • Настроить шаблоны и стек для локальных тестов.
  • Проверить переменные окружения в стеке.

Контрольный список для инженера безопасности:

  • Проверить проброс сокетов и заменить на Agent.
  • Настроить брандмауэр и прокси с TLS.
  • Ревью шаблонов на предмет секрета в коде.

Плейбук: быстрый SOP установки и развёртывания приложения

  1. Подготовка хоста: установить Docker и проверить версию.
  2. Создать Docker том: docker volume create portainer_data.
  3. Запустить Portainer: команда docker run выше.
  4. Открыть UI и задать пароль для admin.
  5. Настроить аутентификацию и RBAC.
  6. Добавить нужные эндпоинты (Agent/TCP/Kubernetes).
  7. Настроить резервное копирование тома и мониторинг.

Инцидентный плейбук: потеря доступа к UI

  1. Проверьте, что контейнер Portainer запущен: docker ps | grep portainer.
  2. Посмотрите логи контейнера: docker logs portainer.
  3. Если порт 9000 занят, проверьте другие процессы и правила iptables.
  4. Если забыли пароль admin, восстановите из тома данных или создайте нового контейнера с примонтированным томом и сбросьте пароль согласно документации.
  5. В экстренном случае запустите новый Portainer-экземпляр на другом порту и подключите тот же том данных.

Отладка и тестовые сценарии

Короткий список тестов при развёртывании:

  • Тест 1: Создать контейнер nginx и проверить доступ по порту.
  • Тест 2: Развернуть стек с базой данных и веб-приложением; проверить сетевые подключения.
  • Тест 3: Остановить Portainer-контейнер и восстановить из бэкапа.
  • Тест 4: Подключить реестр и запуллить приватный образ.

Критерии приёмки:

  • Все тесты выполняются без ошибок.
  • Логи не содержат критических исключений.
  • Права доступа работают согласно назначенным ролям.

Когда Portainer не подходит (контрапримеры)

  • Если вам требуется узкоспециализированное управление кластерами Kubernetes с продвинутым контролем CI/CD, Portainer может быть недостаточен.
  • Для экосистем с высокой безопасностью и строгими требованиями к аудиту предпочтительнее комбинировать Portainer с инструментами управления конфигурациями и SIEM.
  • Если вы используете нестандартные драйверы хранения или сетевые плагины, убедитесь в их совместимости.

Альтернативные подходы

  • Docker CLI + shell-скрипты — для тех, кто предпочитает текстовые сценарии.
  • Rancher — альтернатива для управления Kubernetes-кластерами в больших компаниях.
  • Kubernetes Dashboard — для глубокого управления Kubernetes.

Модель зрелости использования Portainer

  • Уровень 0 — локальная разработка: Portainer как удобный GUI для одного хоста.
  • Уровень 1 — мульти-хост: использование Agent и нескольких эндпоинтов.
  • Уровень 2 — корпоративное: интеграция с LDAP/OAuth, RBAC, резервное копирование и мониторинг.
  • Уровень 3 — масштабирование: Portainer Business с политиками, квотами и централизованным управлением.

Совместимость и заметки по версиям

  • Portainer CE совместим с Docker 19.03+. Для Kubernetes-поддержки требуется соответствующая версия Kubernetes и kubeconfig.
  • При обновлениях Portainer проверяйте релиз-ноты на предмет изменений формата данных в томе portainer_data.

Советы по производительности

  • Ограничивайте число логов контейнеров или настраивайте ротацию логов.
  • Для больших сред используйте отдельный сервер для Portainer и отдельные хранилища для данных.

Privacy и соответствие GDPR

Если вы используете опцию отправки анонимной статистики, она может передавать базовую телеметрию об установке. Отключите сбор статистики в «Настройках», если ваша организация требует соответствия GDPR или внутренних политик конфиденциальности.

Примеры команд и сниппеты

Создание контейнера WordPress (CLI):

docker run -d --name wordpress -p 8080:80 wordpress:latest

Деплой стека из файла docker-compose.yml через Portainer: вставьте содержимое файла в форму добавления стека и нажмите Deploy.

Решение: выбирать CE или Business

Mermaid диаграмма для выбора редакции:

flowchart TD
  A[Нужно ли централизованное управление и политики?] -->|Да| B[Business]
  A -->|Нет| C[CE]
  B --> D{Требуется ли поддержка SLA и квот?}
  D -->|Да| E[Business с поддержкой]
  D -->|Нет| E
  C --> F[Подходит для малого и среднего использования]

Частые ошибки и их решения

  • Ошибка: «Cannot connect to the Docker daemon» — проверьте проброс /var/run/docker.sock или установите Agent.
  • Ошибка: «Image pull rate limit» — добавьте аутентификацию к Docker Hub в Регистры.
  • Проблемы с правами — используйте RBAC и проверьте настройки команд.

Шаблон экзаменационного чеклиста для приёмки Portainer в продакшн

  • Docker и Portainer обновлены до поддерживаемых версий.
  • Создан бэкап тома portainer_data.
  • SSL настроен и проверен.
  • Внешняя аутентификация подключена (если требуется).
  • Роли и права протестированы.
  • Мониторинг и ротация логов настроены.

Краткое резюме

Portainer упрощает управление Docker с помощью интуитивного интерфейса. Он полезен разработчикам и системным администраторам, которые хотят сократить количество ручных команд. Для production-окружений важно настроить безопасность, а в больших организациях стоит рассмотреть Portainer Business для расширенного управления.

Важные шаги на старте:

  • Установите и запустите контейнер Portainer.
  • Настройте аутентификацию и RBAC.
  • Подключите эндпоинты через Agent для удалённых хостов.
  • Настройте бэкап тома portainer_data.

Спасибо за чтение. Если вам нужна инструкция под конкретную инфраструктуру (Kubernetes, Swarm, Azure ACI), опишите окружение — подготовлю адаптированный план.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как играть в LAN по Wi‑Fi с соседями
Сети

Как играть в LAN по Wi‑Fi с соседями

Удаление значка Get Windows 10 и блокировка обновлений
Windows

Удаление значка Get Windows 10 и блокировка обновлений

Мониторинг паролей iCloud: как iPhone определяет утечки
Безопасность

Мониторинг паролей iCloud: как iPhone определяет утечки

Живое радио на Sonos: добавить станции и URL
Аудио

Живое радио на Sonos: добавить станции и URL

Как обновить Arch Linux — pacman и советы
Linux

Как обновить Arch Linux — pacman и советы

Добавить все вкладки в закладки — быстро
Браузеры

Добавить все вкладки в закладки — быстро