目前所知好用的docker代理有两种:nginx traefik,各有优缺点,具体就不说了,下面直接介绍traefik的使用demo.给新手少走一些弯路
初次使用swarm的同学注意开启转发,否则无法访问内部
------------------创建网络----------------------------------------------
docker network create --driver=overlay traefik-net --attachable
-------------------部署反向代理---------------------------------------------
docker service create \
--name traefik \
--constraint=node.role==manager \
--publish 8090:80 --publish 8091:8080 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--network traefik-net \
traefik:v1.7 \
--docker \
--docker.swarmmode \
--docker.domain=traefik \
--docker.watch \
--web
-------------------部署nginx测试app---------------------------------------------
docker service create \
--name nginx \
--network traefik-net \
--label "traefik.backend=nginx" \
--label "traefik.enable=true" \
--label "traefik.protocol=http" \
--label "traefik.port=80" \
--label "traefik.frontend.rule=Host:test.7627.info" \
nginx
docker service scale nginx=5
--------------------部署whami测试app--------------------------------------------
docker service create \
--name whoami \
--network traefik-net \
--label "traefik.backend=whoami" \
--label "traefik.enable=true" \
--label "traefik.protocol=http" \
--label "traefik.port=80" \
--label "traefik.frontend.rule=Host:test2.7627.info" \
containous/whoami
docker service scale whoami=5
test.7627.info和test2.7627.info
入口处直接解析到两个域名就可以, 内部会自动负责均衡到各个宿主机的容器内部
访问 http://10.73.xx.x:8091/ 查看面板
可以参考阅读:
https://www.jianshu.com/p/35cd6ff04e2a
https://www.bookstack.cn/read/core_framework/12af3efd3c6e962d.md
转载请注明:SuperIT » (推荐)docker快速部署swarm并使用traefik反向代理取代nginx隐藏ip和端口