Portainer: графический интерфейс для управления Docker и Kubernetes
Portainer — удобный графический интерфейс для управления Docker и Kubernetes. В этой статье показано, как установить 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.

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

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

Подменю «Аутентификация» позволяет выбрать способ входа пользователей. По умолчанию Portainer использует встроенную базу пользователей, но можно подключить:
- LDAP / Active Directory
- OAuth (GitHub, GitLab, Azure AD и др.)
Если вы используете встроенную базу, переходите в «Пользователи», чтобы создать аккаунты и распределить их по командами.
Эндпоинты
Portainer управляет несколькими Docker-эндпоинтами. По умолчанию вы увидите «local» — локальный Docker Engine.

Чтобы добавить новый эндпоинт, перейдите в раздел «Эндпоинты» и нажмите «Добавить эндпоинт». Выберите тип подключения (Docker, Agent, Azure ACI, Kubernetes) и укажите параметры подключения.
Советы при подключении удалённых хостов:
- При использовании Portainer Agent разверните агент на удалённом хосте для более безопасного подключения.
- Для подключения к удалённому Docker Engine по TCP используйте TLS и сертификаты.
- Для Kubernetes убедитесь, что у вас корректный kubeconfig и права доступа.
Добавленный эндпоинт появится плиткой на домашней странице. Подробная настройка эндпоинтов выходит за рамки этой вводной статьи, так как требует настройки целевого хоста.
Управление контейнерами
Выберите эндпоинт «local» на домашней странице, чтобы открыть полноценный интерфейс управления. На дашборде видны текущие контейнеры, образы и тома.

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

Выбор действия:
- Отметьте чекбокс рядом с контейнером и используйте кнопки сверху, чтобы запустить, остановить, перезапустить или удалить его.
- Запущенные контейнеры отображают зелёный статус running, остановленные — красный stopped.
Важно: если Portainer запущен как контейнер, не останавливайте его, иначе потеряете доступ к веб-интерфейсу.
Нажмите на имя контейнера, чтобы перейти в его детали. Там можно:
- Просмотреть свойства контейнера и параметры запуска.
- Создать новый образ на основе текущего состояния контейнера.
- Управлять сетевыми подключениями.

Кнопки статуса контейнера:
- Logs — показывают логи контейнера.
- Inspect — инспекция манифеста Docker.
- Stats — статистика использования ресурсов (CPU, память, сеть, I/O).
- Console — интерактивная оболочка в контейнере.
- Attach — подключение к процессу в foreground.
Использование лога и консоли помогает отладке при ошибках запуска.
Создание контейнера
Вернитесь в раздел «Контейнеры» и нажмите «Добавить контейнер».

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

Чтобы использовать приватный реестр, добавьте его в «Регистры» в настройках: URL, имя пользователя и пароль. Это также помогает избежать ограничений Docker Hub для неаутентифицированных запросов.
Перед развёртыванием проверьте дополнительные опции:
- Проброс портов (port binding).
- Автопул образа перед развёртыванием.
- Удаление контейнера при завершении (auto-remove).

Нижняя часть формы содержит «расширенные настройки», которые эквивалентны опциям docker run. Там можно задать:
- Команду и entrypoint.
- Монтирование томов.
- Сети и алиасы.
- Переменные окружения.
- Ограничения ресурсов (CPU, память).
Совет: если вы знакомы с CLI, настройка через GUI отразит те же параметры, что и docker run.
Критерии приёмки для успешного развёртывания контейнера:
- Контейнер создан и переходит в состояние running.
- Логи контейнера не содержат фатальных ошибок запуска.
- Служба доступна по назначенному порту (если применимо).
- Если контейнер использует тома — данные сохраняются между перезапусками.
Использование стеков
Одиночный экран создания контейнера подходит для простых задач. Для связанных сервисов используйте стеки на основе docker-compose v2.

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

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

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

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

Дополнительные возможности:
- Экран Images: просмотр, pull, import, export и удаление образов.
- Screens Network и Volumes: просмотр и управление сетями и томами.
- Events: лог всех действий Docker Engine — полезно для аудита и отладки.
Рекомендации по безопасности
Portainer даёт мощный доступ к Docker-окружению, поэтому безопасность критична.
Лучшие практики:
- Всегда используйте HTTPS/SSL при доступе к веб-интерфейсу.
- Подключайте внешние системы аутентификации (LDAP, OAuth) для централизованного управления пользователями.
- Применяйте RBAC: давайте минимальные права, необходимые для работы.
- Разворачивайте Portainer Agent на удалённых хостах вместо прямого проброса Docker сокета.
- Регулярно обновляйте Portainer и Docker до последних патчей безопасности.
- Ограничивайте доступ к порту 9000 на уровне брандмауэра или прокси.
Таблица угроз и mitigations:
| Угроза | Мера защиты |
|---|---|
| Неавторизованный доступ к UI | HTTPS, сложные пароли, 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"Миграция на другой хост:
- Сделайте бэкап тома как файл.
- Перенесите архив на новый хост.
- Восстановите в новом томе и запустите контейнер Portainer.
Совет: при миграции между версиями Portainer проверьте совместимость данных в релиз-нотах.
Роль‑ориентированные контрольные списки
Контрольный список для администратора:
- Установить Portainer и настроить TLS.
- Настроить внешнюю аутентификацию.
- Создать команды и назначить права.
- Настроить резервное копирование тома данных.
- Включить аудит событий.
Контрольный список для разработчика:
- Подключить среду разработки как эндпоинт (через Agent).
- Настроить шаблоны и стек для локальных тестов.
- Проверить переменные окружения в стеке.
Контрольный список для инженера безопасности:
- Проверить проброс сокетов и заменить на Agent.
- Настроить брандмауэр и прокси с TLS.
- Ревью шаблонов на предмет секрета в коде.
Плейбук: быстрый SOP установки и развёртывания приложения
- Подготовка хоста: установить Docker и проверить версию.
- Создать Docker том:
docker volume create portainer_data. - Запустить Portainer: команда
docker runвыше. - Открыть UI и задать пароль для admin.
- Настроить аутентификацию и RBAC.
- Добавить нужные эндпоинты (Agent/TCP/Kubernetes).
- Настроить резервное копирование тома и мониторинг.
Инцидентный плейбук: потеря доступа к UI
- Проверьте, что контейнер Portainer запущен:
docker ps | grep portainer. - Посмотрите логи контейнера:
docker logs portainer. - Если порт 9000 занят, проверьте другие процессы и правила iptables.
- Если забыли пароль admin, восстановите из тома данных или создайте нового контейнера с примонтированным томом и сбросьте пароль согласно документации.
- В экстренном случае запустите новый 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), опишите окружение — подготовлю адаптированный план.
Похожие материалы
Как играть в LAN по Wi‑Fi с соседями
Удаление значка Get Windows 10 и блокировка обновлений
Мониторинг паролей iCloud: как iPhone определяет утечки
Живое радио на Sonos: добавить станции и URL
Как обновить Arch Linux — pacman и советы