docker swarm模式使用traefik部署服务

docker swarm模式使用traefik部署服务
  1. 初始化一个swarm集群, 并把当前主机设置为swarm manage

docker swarm init

2.如果想让其它机器加入该集群,可以执行以下命令(本例未使用)

docker swarm join-token worker    可以输出加入该集群并作为worker角色的命令,如下:To add a worker to this swarm, run the following command:    docker swarm join --token SWMTKN-1-4vr9acar13e6cbvogs3ptir8fz55jubdkjzyi4u2vljy2i38t8-b94ezwkgbbmt12opnqdmaqrcg 192.168.2.63:2377

3.创建一个docker swarm network, traefik反向代理和我们web服务都要用这个network

docker network create --driver=overlay test-traefik --attachable

4.创建trafik反向代理service

在swarm的manager机器上执行以下命令(具体参数设置可参考:https://docs.traefik.io/user-guide/swarm-mode/)

docker service create    --name traefik     --constraint=node.role==manager     --publish 80:80 --publish 8080:8080     --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock     --network test-traefik     traefik     --docker     --docker.swarmmode     --docker.domain=traefik     --docker.watch     --web

启动后,可以通过http://{manager-ip}:8080/ 来访问trafik的web监控界面,可以动态看到反向代理的配置


5.编辑compose-file

vim nginx.yamlversion: '3'services:  web:    image: nginx    networks:    - "test-traefik"    deploy:      labels:      - "traefik.frontend.rule=Host:www.test.com"      - "traefik.port=80"networks:  test-traefik:    external: true

6.然后部署compose-file

docker stack deploy --compose-file nginx.yaml web

7.在本地hosts文件添加一行

192.168.2.63 www.test.com

8.访问192.168.2.63:8080与www.test.com。 截图如下

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部