【发布时间】:2016-12-02 16:42:51
【问题描述】:
我正在尝试带有一些 docker 容器的漂亮的 Træfɪk 反向代理。
这是我的 Træfɪk docker-compose.yml:
version: '2'
services:
traefik:
image: traefik
command: --web --docker --docker.domain=my-domain.net --logLevel=DEBUG
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
这是我的服务的 docker-compose.yml Web 部件:
version: '2'
services:
# [...]
web:
build: . # An nginx based image
container_name: my_app_web
volumes:
- ..:/app/
depends_on:
- db
- redis
labels:
- "traefik.backend=my_app"
- "traefik.frontend.rule=Host:my-domain.net"
- "traefik.port=80"
启动所有这些内容后,我看到在 Træfɪk Web UI 上创建了我的前端/后端,但我无法通过 my-domain.net 访问我的应用程序。
$ curl -H Host:my-domain.net http://127.0.0.1
# ... after ±30s.
Gateway Timeout
Træfɪk 日志:
错误转发到http://172.18.0.4:80,err: dial tcp 172.18.0.4:80: i/o timeout
我可以从它的本地 IP (172.18.0.4) 访问该应用程序,并且它工作正常。
我肯定在这里忘记了一些东西,有什么帮助吗?
附加信息:
- 官方
emilevauge/whoami在单独的 docker-compose 文件中运行良好。 - 我的服务在没有 Træfɪk 的情况下运行良好(通过映射端口 80)
【问题讨论】:
-
能否请您提供您的 Web 应用程序的 Dockerfile 以及您的 docker-compose.yml 的完整 sn-p?
-
您是否在多个网络中运行某些容器?那么您还应该添加一个标签,网络 traefik 应该在其中查找容器。否则,您还会看到一些网关超时。请提供完整的撰写文件。
标签: networking docker docker-compose reverse-proxy traefik