我在服务器上使用traefik来使用docker后端来平衡我的应用程序。 我通过docker开始使用牧场主(1.6.14)轻松启动其他应用程序。
我成功通过traefik访问牧场主。但是当我通过牧场主启动应用程序时,容器没有IP,因此traefik无法与他们联系。在traefik后端,我看到http://:8000
我的应用程序堆栈:
搬运工-compose.yml:
version: '2'
services:
app:
image: mykiwi/ttrss
labels:
traefik.port: 8000
traefik.protocol: http
traefik.frontend.entryPoints: https
traefik.frontend.rule: Host:foo.bar
database:
image: postgres:10-alpine
environment:
- POSTGRES_USER=ttrss
- POSTGRES_PASSWORD=ttrss
volumes:
- database:/var/lib/postgresql/data
volumes:
database: ~
知道为什么/如何解决这个问题? 我也尝试添加这个:(受wekan配置启发)
牧场主-compose.yml:
version: '2'
services:
app:
scale: 1
retain_ip: true
start_on_create: true
database:
scale: 1
start_on_create: true
同样的结果。
答案 0 :(得分:0)
当容器通过Rancher发布时,它们是Rancher的“托管”网络的一部分。容器确实获得了IP地址,但它来自不同的网络(默认值:10.42.0.0/16),而不是docker网络(172.17.0.0/16)。
Rancher还有一个负载均衡器服务,可以满足应用程序的需求。有关详情,请查看:https://rancher.com/docs/rancher/v1.6/en/cattle/adding-load-balancers/#adding-a-load-balancer-in-the-ui。