Docker容器通过Rancher没有IP

时间:2018-02-13 14:41:52

标签: docker rancher traefik

我在服务器上使用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

同样的结果。

1 个答案:

答案 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