Я установил рой-кластер Docker из 3 узлов, одного главного и 2 подчиненных.
Я запустил traefik в качестве службы Docker Swarm с развертыванием стека докеров.
Я создал подключаемую оверлейную сеть с областью Swarm, и трафикподключен в этой сети.
Traefik прослушивает порты 443 и 80, и входная сеть работает как чудо, но если я запускаю контейнеры с docker-compose (без стека!), Traefik их не обнаруживает.
Если я разверну traefik как службу Swarm DoMar со значением swarmmode, установленным на false, он обнаружит только контейнеры, запущенные на хосте, где работает контейнер traefik.
раздел докера файла traefik.toml
[docker]
endpoint = "unix:///var/run/docker.sock"
watch = true
exposedByDefault = false
swarmmode = true
network = "nextcloud_swarm"
Раздел файла docker-compose, относящийся к службе
labels:
- traefik.enable=true
- traefik.backend.loadbalancer.stickiness=true
- traefik.domain=mydomain.com
- traefik.backend=cloud
- traefik.frontend.rule=Host:cloud.mydomain.com
- traefik.docker.network=nextcloud_swarm
- traefik.basic.protocol=http
- traefik.port=80
По какой-то причине мне приходится запускать службы не как службы docker swarm, а как docker-compose (например, стек Docker не '• Поддержка команд sysctl или NET_ADMIN) на разных узлах.