docker swarm模式使用traefik部署服務
阿新 • • 發佈:2018-01-30
swa 2.6 swarm集群 lan 本地 nal aml ext 1.5
初始化一個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.yaml version: '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。 截圖如下
docker swarm模式使用traefik部署服務