我需要在Traefik后面运行两个相同的容器,这些容器必须接受来自多个端口的请求。为此,我使用docker service labels。我遇到的问题是当我使用Docker服务标签并尝试扩展到两个容器时,我收到有关已经定义的后端的错误消息。
使用普通标签(traefik.frontend
,traefik.port
等)可以正常使用,但添加额外标签(traefik.whoami.frontend
,traefik.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."
有谁可以告诉我这里我做错了什么,或者是否有另一种方法将两个端口映射到容器?
谢谢!