Last active 7 hours ago

Revision 1e43d07a5ec9a512bf24e02130ea6661a3646c82

add_new_docker_node.md Raw

Portainer и способы подключения внешних Docker-хостов

Portainer позволяет добавлять в свою панель не только локальный Docker-демон, но и удалённые Docker-хосты. Способы интеграции бывают разные — часть из них предназначена для Docker Swarm, Kubernetes или Podman, но мы рассмотрим лишь два метода, актуальных для классического Docker и Docker Compose:

  • Прямое подключение к Docker API по TCP.
  • Использование Portainer Agent.

Разберём каждый метод подробнее.


1. Подключение по Docker API

При таком подходе Portainer напрямую обращается к Docker-демону на удалённом сервере через HTTP(S). Docker-демон должен слушать TCP-порт 2375 (без TLS) или 2376 (с TLS), а Portainer при добавлении эндпоинта указывает соответствующий адрес.

Настройка на хосте

Откройте файл конфигурации Docker-демона:

sudo nano /etc/docker/daemon.json

Добавьте блок hosts:

Без TLS (все запросы открыты):

{
  "hosts": [
    "unix:///var/run/docker.sock",
    "tcp://0.0.0.0:2375"
  ]
}

С TLS (шифрование трафика):

{
  "tlsverify": true,
  "tlscacert": "/path/to/ca.pem",
  "tlscert": "/path/to/server-cert.pem",
  "tlskey": "/path/to/server-key.pem",
  "hosts": [
    "unix:///var/run/docker.sock",
    "tcp://0.0.0.0:2376"
  ]
}

Перезапустите Docker:

sudo systemctl restart docker

🔒 Важно: если вы отключаете TLS-шифрование, обязательно настройте firewall так, чтобы доступ к порту был только с доверенных IP-адресов. Иначе любой сможет управлять вашим Docker.

Плюсы и минусы

Плюсы Минусы
• Не требуется дополнительное ПО на хосте — только сам Docker-демон.• Прямой «родной» API-доступ без прокси. • Настройка TLS и ротация сертификатов добавляют сложность.• Без надёжного шифрования и firewall — уязвимость для посторонних.