如何让 traefik 从同一张图片自动分配给一个前端 docker 个后端?
How to make traefik automatically assign to one frontend docker backends from the same image?
我开始将我所有的 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
生成的容器是给他的。
我不是很清楚你在问什么,所以如果这个答案没有完全切中要害,我深表歉意。你应该只有一个 "frontend" (这是你的 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/。
我开始将我所有的 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
生成的容器是给他的。
我不是很清楚你在问什么,所以如果这个答案没有完全切中要害,我深表歉意。你应该只有一个 "frontend" (这是你的 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/。