如何在可以接受多个端口上的连接的同一后端运行两个docker容器?

时间:2017-10-23 15:49:27

标签: traefik

我需要在Traefik后面运行两个相同的容器,这些容器必须接受来自多个端口的请求。为此,我使用docker service labels。我遇到的问题是当我使用Docker服务标签并尝试扩展到两个容器时,我收到有关已经定义的后端的错误消息。

使用普通标签(traefik.frontendtraefik.port等)可以正常使用,但添加额外标签(traefik.whoami.frontendtraefik.whoami.port等)似乎会破坏事物。

Docker撰写文件:

version: '2'

services:
  whoami:
    image: emilevauge/whoami
    networks:
      - web
    labels:
      - "traefik.http.frontend.rule=Host:whoami.docker.localhost"
      - "traefik.http.port=80"
      - "traefik.http.frontend.entryPoints=http"
      - "traefik.http.frontend.backend=whoami"

      - "traefik.soap.frontend.rule=Host:whoami.docker.localhost"
      - "traefik.soap.port=8443"
      - "traefik.soap.frontend.entryPoints=soap"
      - "traefik.soap.frontend.backend=whoami"

networks:
  web:
    external:
      name: traefik_webgateway

向上扩展:

$ docker-compose scale whoami=2
Creating and starting whoami_whoami_2 ... done

Traefik错误日志:

proxy_1  | time="2017-10-23T15:37:16Z" level=error msg="Near line 39 (last key parsed 'backends.backend-whoami.servers'): Key 'backends.backend-whoami.servers.service' has already been defined." 

有谁可以告诉我这里我做错了什么,或者是否有另一种方法将两个端口映射到容器?

谢谢!

1 个答案:

答案 0 :(得分:1)

Docker副本管理存在错误。

修补程序将在下一版本中合并:https://github.com/containous/traefik/pull/2314