首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Traefik与Docker Networks

Traefik与Docker Networks
EN

Stack Overflow用户
提问于 2017-07-19 18:06:03
回答 2查看 8.7K关注 0票数 2

我真的不明白如何在docker网络中使用traefik。

我试着运行"wekan“看板。如果我将端口绑定到主机,它会完美地工作,所以它实际上是通过traefik来寻址它。这是我的docker-config:

代码语言:javascript
复制
version: '2'

services:

 wekandb:
   image: mongo:3.2.14
   container_name: wekan-db
   command: mongod --smallfiles --oplogSize 128
   networks:
     - wekan-tier
   expose:
     - 27017
   volumes:
     - wekan-db:/data/db
     - wekan-db-dump:/dump

 wekan:
   image: wekanteam/wekan:latest
   container_name: wekan-app
   networks:
     - wekan-tier
#    ports:
#      - 8081:80
   environment:
     - MONGO_URL=mongodb://wekandb:27017/wekan
     - ROOT_URL=https://wekan.domain.com
   depends_on:
     - wekandb
   labels:
     - "traefik.port=80"
     - "traefik.backend=wekan"
     - "traefik.frontend.rule=Host:wekan.domain.com"
     - "traefik.docker.network=wekan_wekan-tier"
volumes:
 wekan-db:
   driver: local
 wekan-db-dump:
   driver: local

networks:
 wekan-tier:
   driver: bridge

我好像找不到进入那该死的东西的方法...您的回答将非常感谢,它不仅允许我运行Wekan,而且还可以更新我使用链接的旧服务:链接而不是Docker网络-链接现在已被弃用。

EN

回答 2

Stack Overflow用户

发布于 2017-07-19 20:02:30

我相信你在这里有不止一个问题。

首先,在你的组合中你没有Traefik服务,这是可以的,Traefik可以在这里看到来自服务的容器,但是Traefik不能向它发送请求,因为Traefik服务和wekan服务不共享同一个网络。

因此,要解决这个问题,您需要为Traefik创建一个特定的网络,并将其设置在您的撰写文件中。

示例:

代码语言:javascript
复制
$ docker network create traefik-net
$ docker service --name traefik --network traefik-net .... traefik ....

其次,您需要定义Traefik将用于连接您的服务的网络,该网络必须是与Traefik服务共享的网络。

因此,您的wekan服务需要如下所示:

代码语言:javascript
复制
 wekan:
   image: wekanteam/wekan:latest
   container_name: wekan-app
   networks:
     - wekan-tier
     - traefik-net
   environment:
     - MONGO_URL=mongodb://wekandb:27017/wekan
     - ROOT_URL=https://wekan.domain.com
   depends_on:
     - wekandb
   labels:
     - "traefik.port=80"
     - "traefik.backend=wekan"
     - "traefik.frontend.rule=Host:wekan.domain.com"
     - "traefik.docker.network=traefik-net"
票数 7
EN

Stack Overflow用户

发布于 2018-08-08 05:05:41

我已经修改了您的docker-compose文件以使其正常工作:

代码语言:javascript
复制
version: '3'

services:

  web:
    image: wekanteam/wekan:latest
    networks:
    - wekan-tier
    environment:
    - MONGO_URL=mongodb://wekandb:27017/wekan
    - ROOT_URL=https://wekan.domain.com
    labels:
    - "traefik.port=80"
    - "traefik.docker.network=wekan_wekan-tier"

  wekandb:
    image: mongo:3.2
    command: mongod --smallfiles --oplogSize 128
    networks:
    - wekan-tier
    expose:
    - 27017
    volumes:
    - wekan-db:/data/db
    - wekan-db-dump:/dump

  traefik:
    image: 'traefik:1.6'
    command: --web --docker --docker.watch --docker.domain=local --logLevel=DEBUG
    labels:
    - traefik.docker.network=wekan-tier
    - traefik.port=8080
    ports:
    - '80:80'
    - '8080:8080'
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    networks:
    - wekan-tier

volumes:
  wekan-db:
    driver: local
  wekan-db-dump:
    driver: local

networks:
  wekan-tier:
    driver: bridge

现在使用以下命令启动容器:

代码语言:javascript
复制
$ docker-compose -p wekan up -d

要检查traefik是否正常工作,请转到http://localhost:8080/,如果有问题,请使用$ service apache2 stop停止您的apache服务器。另一方面,如果您可以看到traefik界面,则将以下行添加到/etc/hosts文件中:

代码语言:javascript
复制
127.0.0.1   web.wekan.local

现在转到http://web.wekan.local,您应该会看到Wekan登录页面:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45187330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档