如果设置了docker.swarmmode,Traefik不会发现使用docker-compose启动的容器(无堆栈)

时间:2019-04-09 09:41:04

标签: docker docker-compose docker-swarm traefik

我设置了一个由3个节点,一个主节点和2个从节点组成的docker swarm集群。
我以traffik作为docker swarm服务开始使用docker stack deploy。
我创建了一个具有群集范围的可附加覆盖网络,并且在该网络上附加了traefik。

Traefik正在监听端口443和80,而入口网络的运行就像一个魅力,但是如果我使用docker-compose启动容器(无堆栈!),traefik不会发现它们。

如果我将traefik部署为swarmmode设置为false的docker swarm服务,它将仅发现在运行traefik容器的主机上启动的容器。

traefik.toml文件的

docker部分

[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 stack不支持sysctl命令或NET_ADMIN)。

0 个答案:

没有答案