1. 程式人生 > >docker swarm模式使用traefik部署服務

docker swarm模式使用traefik部署服務

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部署服務