我开始将我的所有systemd-nspawn
容器转换为docker
和traefik
解决方案,并且设法通过一次docker
容器自动创建了一个前端(后端)开始。
我想从同一个docker映像(每个都有一个自动创建的名称)开始将多个容器附加到我要设置的前端。这样的设置可行吗?
换句话说,今天我跑步
# docker run myimage
# docker run myimage
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b4af3466ba6 wazaa "/bin/sh -c 'python …" About an hour ago Up About an hour 5000/tcp cranky_montalcini
59b1be83bf98 wazaa "/bin/sh -c 'python …" About an hour ago Up About an hour 5000/tcp inspiring_goldwasser
我得到了两个容器(根据下面的截图分别为cranky-montalcini
和inspiring-goldwasser
,以及上面的docker ps
输出),这些容器分配了两个前端。另一方面,我想将它们分配给单个myfrontend.example.com
,这将以某种方式识别出从myimage
产生的容器是给他的。
答案 0 :(得分:1)
我不太清楚您要问的是什么,所以我很抱歉如果这个答案没有达到目标。您应该只有一个“前端”(这是您的traefik容器)。 Traefik根据名称将新容器映射到后端。如果要将两个具有不同名称的容器视为同一后端的一部分(以便定向到该后端的请求将在它们之间进行循环移动),则可以设置traefik.backend
标签。例如,这将使foo
后端的以下两个容器成为成员:
docker run --label traefik.backend=foo some_image
docker run --label traefik.backend=foo another_image
当然,这假设您还配置了一个适当的traefik.frontend.rule
,它将流量定向到该特定后端。
有关其他信息,请参见https://docs.traefik.io/configuration/backends/docker/。