Здесь могла бы быть реклама
Она помогает блогу развиваться.
Кажется, сегодня она немного загрустила.

Главная страница » Сеть и сервисы » Portainer: Визуальное управление Docker-контейнерами для вашего домашнего сервера
Portainer: Визуальное управление Docker-контейнерами для вашего домашнего сервера
Сеть и сервисы

Portainer: Визуальное управление Docker-контейнерами для вашего домашнего сервера

31.03.2026 159
Portainer: Визуальное управление Docker-контейнерами для вашего домашнего сервера

Пошаговая инструкция по установке и настройке Portainer для визуального управления Docker-контейнерами на домашнем сервере. Упростите работу с Docker на Raspberry Pi, Orange Pi.

Если вы, как и я, увлекаетесь домашними серверами на одноплатниках вроде Raspberry Pi или Orange Pi, то наверняка сталкивались с Docker. Эта технология — настоящая магия: она позволяет запускать приложения в изолированных «контейнерах», не засоряя основную систему. Но по мере роста числа контейнеров управление ими через командную строку становится громоздким. Именно здесь на сцену выходит Portainer — легковесный и мощный веб-интерфейс для управления Docker. Сегодня я подробно расскажу, как установить и настроить Portainer, чтобы вы могли управлять своими контейнерами буквально в пару кликов из браузера.

Что такое Portainer и зачем он мне?

Portainer — это открытое программное обеспечение с веб-интерфейсом, которое предоставляет наглядную панель управления для Docker (и Kubernetes). Вместо того чтобы запоминать многочисленные команды docker run, docker ps или docker-compose up, вы можете делать всё это через интуитивно понятный GUI.

Зачем это нужно энтузиасту умного дома или DIY-проектов? * Наглядность: Видите все запущенные контейнеры, образы, сети и тома на одной панели. * Удобство: Запуск, остановка, перезагрузка контейнеров, просмотр логов, доступ к консоли — всё в браузере. * Безопасность: Можно создавать пользователей с разными правами доступа (если к вашему серверу имеют доступ другие члены семьи или проекта). * Экономия времени: Развёртывание стека из нескольких контейнеров (например, для Home Assistant с его аддонами) происходит через загрузку готового docker-compose.yml файла.

Если вы уже используете Home Assistant для автоматизации, то Portainer станет для него отличным компаньоном, позволяя легко управлять его контейнером и соседними сервисами.

Установка Docker

Portainer — это тоже контейнер. Поэтому первым делом нужно установить сам Docker Engine. Команды приведены для Debian/Ubuntu и производных (Raspberry Pi OS, DietPi, Armbian).

  1. Обновляем репозитории и устанавливаем зависимости: bash sudo apt update && sudo apt upgrade -y sudo apt install -y ca-certificates curl gnupg

  2. Добавляем официальный GPG-ключ Docker: bash sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg

  3. Настраиваем репозиторий: bash echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Примечание: Эта команда автоматически определит архитектуру (arm64 для Raspberry Pi 3/4, armv7 для Pi 2) и версию ОС.

  4. Устанавливаем Docker: bash sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

  5. Проверяем установку: bash sudo docker run hello-world Если вы увидите сообщение «Hello from Docker!», значит, всё установлено корректно.

Типичная ошибка: Пропуск шага добавления репозитория и установка старой версии Docker из репозитория ОС. Это может привести к проблемам с совместимостью. Всегда используйте официальный репозиторий.

Установка Portainer: два варианта

Portainer состоит из двух частей: Portainer Server (основной управляющий сервер) и Portainer Agent (легковесный компонент для удалённых Docker-хостов). Для управления одним сервером (самым распространённым сценарием в домашней лаборатории) достаточно Portainer Server.

Вариант 1: Установка Portainer Server (рекомендуется для начала)

Создаём volume для сохранения данных Portainer (чтобы настройки не пропали при обновлении контейнера) и запускаем контейнер.

sudo docker volume create portainer_data
sudo docker run -d 
  -p 8000:8000 
  -p 9443:9443 
  --name portainer 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_dаta:/data 
  portainer/portainer-ce:latest

Разберём команду по частям: * -d – запуск в фоновом режиме (демон). * -p 8000:8000 -p 9443:9443 – проброс портов. 9443 для основного HTTPS-интерфейса, 8000 для туннеля к агенту (пока не используется). * --name portainer – имя контейнера. * --restart=always – политика перезапуска. Контейнер автоматически запустится после перезагрузки системы. * -v /var/run/docker.sock:/var/run/docker.sockКлючевой момент. Это монтирование Docker-сокета хоста в контейнер. Именно это даёт Portainer'у возможность управлять Docker-демоном. * -v portainer_dаta:/data – монтирование тома для хранения данных. * portainer/portainer-ce:latest – образ Community Edition.

Вариант 2: Установка с Docker Compose (более структурированный способ)

Я предпочитаю этот способ для всех своих сервисов. Создаём файл docker-compose.yml.

version: '3.8'

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    ports:
      - "8000:8000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_dаta:/data

volumes:
  portainer_dаta:

Запускаем стек:

sudo docker compose up -d

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

  1. Откройте браузер и перейдите по адресу: https://<IP_ВАШЕГО_СЕРВЕРА>:9443.

    • Например: https://192.168.1.100:9443.
    • Браузер предупредит о самоподписанном сертификате — это нормально. Смело продолжайте (обычно кнопка «Дополнительно» -> «Перейти на сайт»).
  2. Создание администратора: На первой странице вам предложат создать учётную запись администратора. Заполните поля «Username» и «Password». Запомните эти данные!

  3. Подключение к Docker: На следующем экране выберите «Get Started» в карточке «Local». Portainer автоматически подключится к Docker-демону через смонтированный сокет.

Типичная ошибка: Не получается зайти по IP-адресу. Убедитесь, что: * Вы указали правильный IP-адрес вашего одноплатника (узнать можно командой hostname -I). * На хосте не блокирует порт 9443 фаервол (например, ufw). Для открытия выполните sudo ufw allow 9443.

Обзор интерфейса и базовые операции

После входа вы попадёте в дашборд. Слева — основное меню.

Контейнеры (Containers)

Здесь отображается список всех контейнеров. Для каждого доступны кнопки быстрых действий: запуск (▶️), остановка (⏹️), перезагрузка (↻). Кликнув на имя контейнера, вы попадёте в детальное управление: * Logs: Просмотр журнала в реальном времени. Незаменимо для отладки. * Console: Прямой доступ к командной строке контейнера. Можно выполнить ls, cat и другие команды. * Inspect: Вся низкоуровневая информация о контейнере в формате JSON. * Stats: Графики потребления CPU, памяти и сети.

Практика: Попробуйте остановить и снова запустить какой-нибудь контейнер.

Образы (Images)

Раздел для управления Docker-образами. Здесь можно загрузить новый образ (Pull), удалить неиспользуемые, посмотреть историю.

Практика: Загрузим образ для теста. В поле «Pull image» введите nginx:alpine и нажмите «Pull the image». Через мгновение легковесный образ веб-сервера появится в списке.

Сети (Networks) и Тома (Volumes)

Тут всё интуитивно. Можно создавать пользовательские сети для изоляции группы контейнеров (например, отдельная сеть для сервисов умного дома) и управлять томами для хранения данных.

Развёртывание нового контейнера через Portainer

Давайте запустим только что загруженный Nginx.

  1. Перейдите в Containers и нажмите «Add container».
  2. Имя контейнера: my-web-test.
  3. Образ: nginx:alpine.
  4. Порты: В секции «Manual network port publishing» нажмите «Map additional port». Укажите 8080 как Host port и 80 как Container port. Теперь веб-сервер будет доступен на порту 8080 вашего хоста.
  5. Прокрутите вниз и нажмите «Deploy the container».

Проверка результата: Откройте браузер и перейдите по адресу http://<IP_ВАШЕГО_СЕРВЕРА>:8080. Вы должны увидеть стартовую страницу «Welcome to nginx!». Поздравляю, вы только что запустили контейнер через веб-интерфейс!

Работа с Docker Compose в Portainer

Это одна из самых мощных функций. Допустим, у вас есть готовый docker-compose.yml файл для развёртывания Node-RED, который вы хотите подключить к Home Assistant.

  1. В левом меню выберите Stacks.
  2. Нажмите «Add stack».
  3. Дайте стеку имя, например, nodered-stack.
  4. В поле «Web editor» вставьте содержимое вашего docker-compose.yml файла. Например: yaml version: '3.8' services: nodered: image: nodered/node-red:latest container_name: nodered restart: unless-stopped ports: - "1880:1880" volumes: - node_red_dаta:/data volumes: node_red_dаta:
  5. Нажмите «Deploy the stack».

Portainer развернёт все сервисы, описанные в файле, как единое целое. Управлять стеком (остановить, запустить, удалить) можно также централизованно.

Безопасность и рекомендации

  • Смените порт по умолчанию (опционально): Если 9443 занят, вы можете изменить его в команде docker run или в docker-compose.yml (например, на -p 8443:9443).
  • Используйте HTTPS: Portainer по умолчанию использует самоподписанный сертификат. Для серьёзного использования настройте свой сертификат (например, от Let's Encrypt) через опцию -v /path/to/certs:/certs и соответствующие переменные окружения (--ssl).
  • Резервное копирование: Ваши настройки Portainer хранятся в томе portainer_data. Чтобы сделать бэкап, используйте команду: bash sudo docker run --rm -v portainer_dаta:/data -v $(pwd):/backup alpine tar czf /backup/portainer-backup-$(date +%Y%m%d).tar.gz -C /data . Это создаст архив в текущей директории. Восстановление похоже на принципы, описанные в статье про надёжный бэкап Home Assistant.

Заключение

Portainer кардинально упрощает жизнь любому, кто работает с Docker на домашнем сервере — будь то медиасервер на NanoPi M4V2 или платформа для умного дома на Raspberry Pi. Он заменяет десятки сложных команд нажатием кнопок, предоставляет наглядную информацию и снижает порог входа для новичков.

Потратьте полчаса на его установку — и вы больше не захотите возвращаться к чистому CLI для рутинных операций. А когда освоитесь, попробуйте подключить через Portainer Agent другие ваши одноплатники (например, с ESP32 Web Server) для создания единой панели управления всей вашей DIY-инфраструктурой.

Удачи в экспериментах!

Понравилась статья?

Поставьте лайк и сохраните полезный материал в закладки.

Комментарии (0)
Добавить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
VPN только для выбранных сайтов и устройств в OpenWrt: раздельная маршрутизация трафика
Сеть и сервисы
09.09.2026
VPN только для выбранных сайтов и устройств в OpenWrt: раздельная маршрутизация трафика
Настройка раздельной маршрутизации в OpenWrt: как направить трафик только выбранных устройств или доменов через VPN, оставив остальной интернет напрямую. Три способа:
Nginx Proxy Manager: установка и первоначальная настройка reverse proxy с HTTPS в Docker
Сеть и сервисы
02.09.2026
Nginx Proxy Manager: установка и первоначальная настройка reverse proxy с HTTPS в Docker
Пошаговая установка Nginx Proxy Manager в Docker: настройка reverse proxy, получение SSL-сертификатов Let's Encrypt и проксирование сервисов с HTTPS. Практическое
Routerich AX3000: настройка роутера на OpenWrt, Mesh, TorrServer и сетевое хранилище
Сеть и сервисы
04.09.2026
Routerich AX3000: настройка роутера на OpenWrt, Mesh, TorrServer и сетевое хранилище
Routerich AX3000 с OpenWrt оказался гораздо дружелюбнее, чем можно ожидать от роутера с настолько гибкой прошивкой. Разбираемся с первоначальной настройкой, Mesh,
ZeroBlock для OpenWrt: настройка VPN и маршрутизации на Routerich
Сеть и сервисы
05.09.2026
ZeroBlock для OpenWrt: настройка VPN и маршрутизации на Routerich
Практическая инструкция по установке и настройке ZeroBlock на OpenWrt. Разберём подключение VPN, работу с sing-box, DNS, секциями маршрутизации, автозапуск и базовую
Как проверить IP на блокировку в ТСПУ: рабочий Python-скрипт для диагностики
Сеть и сервисы
02.09.2026
Как проверить IP на блокировку в ТСПУ: рабочий Python-скрипт для диагностики
Практический Python-скрипт для проверки доступности IP или домена через DNS, TCP 443, TLS и HTTPS. Работает на Windows, Raspberry Pi, Rock Pi, Orange Pi, Debian, Ubuntu
Как выбрать LTE/5G-модем для Routerich AX3000: от простого E3372 до T77W968, T99W175 и FM350
Сеть и сервисы
08.09.2026
Как выбрать LTE/5G-модем для Routerich AX3000: от простого E3372 до T77W968, T99W175 и FM350
Как выбрать LTE/5G-модем для Routerich AX3000: разбираемся в LTE Cat, агрегации частот, совместимости, питании, охлаждении и популярных моделях от Huawei, Quectel,

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