Вы освоили основы Docker, научились запускать контейнеры через консоль, но со временем управлять растущим количеством сервисов становится неудобно. Хочется видеть список запущенных контейнеров, быстро читать логи, перезапускать приложения одной кнопкой и следить за потреблением ресурсов без ввода десятков команд.
Решение есть — Portainer. Это популярный open-source инструмент, предоставляющий удобный веб-интерфейс для управления Docker-окружением. Он идеально подходит как для домашнего сервера, так и для управления небольшим кластером.
В этой статье мы разберем, как установить Portainer и использовать его основные возможности для упрощения работы с Docker.
Что нам понадобится
- Linux сервер (Ubuntu, Debian, CentOS или любой другой дистрибутив).
- Установленный Docker (Engine и CLI).
- Права
sudoили доступ к пользователюroot. - Открытый порт 9443 (для HTTPS доступа) или 9000 (для HTTP, если требуется).
Мощные VPS для ваших Docker-контейнеров
Идеально подходит для Nginx Proxy Manager, Portainer и Nextcloud. Высокая производительность (NVMe), защита от DDoS и скидка 5% по промокоду.
Установка Portainer CE
Portainer сам запускается как Docker-контейнер. Это делает его установку невероятно простой. Мы будем использовать Portainer CE (Community Edition) — бесплатную версию, функционала которой более чем достаточно для большинства задач.
Сначала создадим Docker Volume, чтобы настройки Portainer (пользователи, пароли, окружения) не пропали после перезапуска контейнера:
docker volume create portainer_data
Теперь запустим сам контейнер:
docker run -d -p 8000:8000 -p 9443:9443 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data portainer/portainer-ce:latest
Давайте разберем, что делает эта команда:
-p 9443:9443: Открывает доступ к веб-интерфейсу через HTTPS.-v /var/run/docker.sock:/var/run/docker.sock: Критически важная часть. Мы “пробрасываем” сокет Docker внутрь контейнера Portainer, что дает ему право управлять другими контейнерами на хосте.-v portainer_data:/data: Подключаем созданный ранее том для хранения данных.--restart=always: Если сервер перезагрузится или контейнер упадет, Docker запустит его снова.
Проверьте, что контейнер запустился:
docker ps
Вы должны увидеть portainer/portainer-ce в списке со статусом Up. Теперь можно открыть браузер и перейти по адресу https://IP-вашего-сервера:9443.
Создание администратора
При первом входе Portainer попросит создать учетную запись администратора.
- Username: Придумайте имя (по умолчанию
admin). - Password: Задайте надежный пароль (минимум 12 символов).
- Нажмите Create user.
После создания пользователя Portainer автоматически определит локальное окружение Docker (благодаря проброшенному сокету). Нажмите Get Started, чтобы перейти в панель управления.
Вы увидите плитку local. Кликните по ней, чтобы попасть в Dashboard (панель управления) вашего сервера.
Основные возможности
Dashboard показывает общую сводку: количество стеков, контейнеров, образов, томов и сетей. Рассмотрим самые частые сценарии использования.
Управление контейнерами (Containers)
Перейдите в раздел Containers в левом меню. Здесь вы видите список всех контейнеров.
- Quick Actions: В колонке “Quick Actions” можно мгновенно посмотреть логи (иконка списка), статистику ресурсов (график), зайти в консоль (иконка
>_) или остановить контейнер. - Logs: Нажав на иконку логов, вы увидите вывод приложения (stdout/stderr) в реальном времени. Можно включить “Auto-refresh”, чтобы следить за логами “на лету”.
- Console: Кнопка “Console” позволяет подключиться к контейнеру (обычно через
/bin/bashили/bin/sh) прямо из браузера. Это невероятно удобно для отладки.
Работа со стеками (Stacks)
Stacks в терминологии Portainer — это и есть ваши Docker Compose проекты. Вместо того чтобы создавать файлы docker-compose.yml на сервере через SSH и запускать их вручную, вы можете делать это прямо в интерфейсе.
- Зайдите в Stacks -> Add stack.
- Дайте стеку имя (например,
nginx-proxy). - В Web editor вставьте содержимое вашего
docker-compose.yml. - Нажмите Deploy the stack.
Portainer сам скачает образы и запустит сервисы. Если нужно изменить конфигурацию, просто откройте стек, отредактируйте YAML и нажмите Update the stack.
Управление образами и сетями
- Images: Позволяет удалять старые неиспользуемые образы, которые занимают место на диске. Также можно вручную спуллить (скачать) новый образ.
- Networks: Полезно для проверки, какие контейнеры находятся в каких сетях, и для создания новых сетей (например,
macvlanилиbridge).
Безопасность
Portainer имеет полный доступ к вашему Docker-демону (фактически root-права).
- Используйте сложные пароли.
- Если вы планируете открывать доступ к Portainer из интернета, обязательно используйте Reverse Proxy (например, Nginx Proxy Manager) с SSL-сертификатом, а порт 9443 на роутере/фаерволе лучше закрыть, оставив доступ только через прокси (443 порт).
- Не оставляйте порт открытым для всего мира, если в этом нет острой необходимости. Лучше использовать VPN.
Как обновить Portainer
Portainer не умеет обновлять сам себя “изнутри”. Чтобы получить свежую версию, нужно пересоздать контейнер. Не волнуйтесь, ваши настройки сохранятся в томе portainer_data.
# 1. Останавливаем старый контейнер
docker stop portainer
# 2. Удаляем его
docker rm portainer
# 3. Скачиваем свежий образ
docker pull portainer/portainer-ce:latest
# 4. Запускаем снова (той же командой, что и при установке)
docker run -d -p 8000:8000 -p 9443:9443 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data portainer/portainer-ce:latest
Заключение
Portainer делает администрирование Docker доступным и наглядным. Он не заменяет консоль полностью (для сложных задач и автоматизации CLI по-прежнему важен), но для повседневного мониторинга, быстрого просмотра логов и управления стеками — это незаменимый инструмент.
Установив его один раз, вы сэкономите часы времени на рутинных операциях. Для более глубокого изучения рекомендуем официальную документацию Portainer.