如果我的traefik在裸机服务器中运行,而不是在docker容器中运行,如何通过docker provider在traefik中配置服务?

时间:2020-05-07 17:51:25

标签: docker docker-compose docker-swarm traefik

我正在尝试通过docker provider在traefik中配置服务。我的traefik在裸机服务器上运行,而不是作为docker容器运行。

我正在尝试以下docker-compose.yaml:

version: '3.7'

services:
  web:
    image: nginxdemos/nginx-hello:plain-text
    deploy:
      endpoint_mode: dnsrr
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.swarm-test.entrypoints=http-int"
        - "traefik.http.routers.swarm-test.rule=Host('swarm-test.example.com')"
        - "traefik.http.routers.swarm-test.service=swarm-test"
        - "traefik.http.services.swarm-test.loadbalancer.server.port=8080"
    networks:
      - host

networks:
  host:
    external: true

我的traefik路由器不会显示此服务。

如果我在行中注释掉以下内容,则该服务将以10.0.0.0 IP地址出现在我的traefik中:

#networks:
#  - host

但是10.0.0.0 IP地址是内部docker IP地址,因此在我的traefik裸露的Emtal服务器上设置10.0.0.0 IP不会使其与我的docker容器通信。

此示例中使用的映像仅通过简单的nginx安装公开8080端口以进行测试。

启用还是禁用 endpoint_mode:dnsrr 配置都没有关系。使用或不使用 endpoint_mode:dnsrr 配置,测试结果相同。

如何通过docker provider在traefik中配置此服务?

0 个答案:

没有答案