【发布时间】:2017-08-18 15:20:24
【问题描述】:
我想设置以下场景:
- 一台带有 Docker 容器的物理机
- 带有网络
backend的容器中的traefik - 另一个使用主机网络的容器 (
network_mode: host)
Traefik 成功找到容器并将其添加到 IP 地址 127.0.0.1,显然无法从 traefik 容器(不同的网络/桥接器)访问。
docker-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。
我能否说服 traefik 为容器使用另一个 IP?
谢谢!
【问题讨论】:
-
尝试将应用添加到后端网络。
-
忘记在应用容器的配置中添加
network_mode。 -
我在 windows 上使用 dockertoolbox,docker-machine ip 是 192.168.99.100,但是当我在 network_mode: host 中运行我的应用程序时,它使用的是 127.0.0.1 而不是 192.168.99.100。你能帮忙吗?
-
似乎他们正在更新版本中解决此问题github.com/containous/traefik/issues/5559 解决方法:github.com/containous/traefik/issues/…
标签: docker docker-compose traefik