Traefik作为Docker容器与主机networking的代理
我想设置以下场景:
- 一台具有Docker容器的物理机器
- 与networking
backend
容器中的traefik - 另一个使用主机networking的容器(
network_mode: host
)
Traefik成功find了容器,并添加了IP地址127.0.0.1
,这显然不能从traefik容器(不同的networking/网桥)访问。
泊坞窗,compose.yml:
version: '3' services: traefik: image: traefik ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/etc/traefik/traefik.toml networks: - backend app: image: my_app labels: - "traefik.enable=true" - "traefik.frontend.rule=Host:myapp.example" - "traefik.port=8080" network_mode: host networks: backend: driver: bridge
app
容器被添加
Server URL Weight server-app http://127.0.0.1:8080 0 Load Balancer: wrr
当然,我可以在主机上使用http://127.0.0.1:8080
访问app
,或者从traefik容器使用http://$HOST_IP:8080
访问app
。
我能以某种方式说服traefik使用另一个IP的容器?
谢谢!
没有一个通用的dockernetworking,traefik将无法路由到您的容器。 由于您使用的是主机networking,因此几乎不需要traefik代理容器,只需直接访问。 或者,如果您只需要通过代理访问它,然后将其放置在后端networking上。 如果您需要在主机上发布一些端口,并通过traefik代理其他端口,则将其放置在后端networking上,并发布需要发布的端口,而不是直接使用主机networking。