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

Возможности

  • Управление контейнерами, образами, томами и сетями через GUI
  • Просмотр логов и статистики контейнеров в реальном времени
  • Поддержка Docker Compose стеков
  • Управление несколькими Docker-хостами и Swarm-кластерами
  • Ролевой контроль доступа (RBAC) в версии Business Edition

Установка через Docker Compose

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

mkdir -p /opt/portainer && cd /opt/portainer

Файл /opt/portainer/docker-compose.yml:

services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock - data:/data networks: - traefik_proxy labels: - "traefik.enable=true" - "traefik.http.routers.portainer.rule=Host(`example.com`) && PathPrefix(`/portainer`)" - "traefik.http.routers.portainer.entrypoints=websecure" - "traefik.http.routers.portainer.tls.certresolver=letsencrypt" - "traefik.http.routers.portainer.middlewares=portainer-strip" - "traefik.http.routers.portainer.priority=100" - "traefik.http.middlewares.portainer-strip.stripprefix.prefixes=/portainer" - "traefik.http.services.portainer.loadbalancer.server.port=9000" volumes: data: external: true name: portainer_data networks: traefik_proxy: external: true

Запуск

docker volume create portainer_data docker compose up -d

Доступ

При использовании Traefik с путём /portainer:

https://example.com/portainer/

При прямом маппинге портов (альтернатива без Traefik):

ports: - "9000:9000" # HTTP - "9443:9443" # HTTPS

Откройте http://localhost:9000 и создайте учётную запись администратора при первом входе.

Путь-based доступ через Traefik

Если Portainer доступен по пути (а не отдельному домену), необходимо передать параметр --base-url чтобы все внутренние ссылки Portainer были корректными:

command: --base-url /portainer

Обновление

docker compose pull && docker compose up -d

Примечания

  • Данные Portainer хранятся в томе portainer_data — при удалении контейнера настройки сохраняются.
  • Доступ к Docker-сокету (/var/run/docker.sock) даёт Portainer полный контроль над хостом — используйте только в доверенной среде.
  • Community Edition бесплатна и покрывает большинство задач.