使用docker service创建服务时端口在哪里监听

使用docker service创建服务时端口在哪里监听

2019-11-17
阅读(787)
来源: 淘梦互联
摘要: dockerswarmservice服务端口监听当我们使用dockerservicecreate--publish<PUBLISHED-PORT>:<SERVICE-PORT>....

docker swarm service服务端口监听

当我们使用docker service create --publish <PUBLISHED-PORT>:<SERVICE-PORT>创建服务的时候,端口会监听在哪里?

答案是会监听在swarm网络上的所有node上。

举例来说:
假如我们有5台主机:vm1, vm2, vm3,vm4,和vm5
其中manager是vm1,vm2,vm3
worker是vm4,和vm5

当我们在任何一台manager主机上创建service时,假设--replicas=2,例如:

$ docker service create \    --name my_web \    --replicas 2 \    --publish published=8080,target=80 \    --network <my-overlay-network> \
    nginx

这样swarm会在5台vm上任选两台主机,创建两个continers,他们可能在manager节点上,也可能在worker节点上,随机分配。
但是published的8080端口会监听在所有的5台vm上,可以使用任意vm[1-5]:8080地方来访问nginx,例如:

curl http://vm1:8080/curl http://vm2:8080/curl http://vm3:8080/curl http://vm4:8080/curl http://vm4:8080/

达到同样的效果。

另外由于我们创建了两个container,那么具体哪一个contaier提供服务呢?docker swarm使用round robin的策略:第一个请求达到container1,第二个请求到container2,下一个再到container1,然后下下一个到contiainer2,如此轮询。

如果在my-overlay-network里面,用户也可以使用curl http://service-name:80/来访问nginx,然后在container层面,还是使用轮询的方式。


0


上一篇:到顶了!
上一篇:到底了!
精品服务器推荐
香港服务器
像使用国内服务器那样流畅
独享硬件资源,CN2直连高速专线
多种配置可选,更符合您的业务需求
  • ·CN2直连
  • ·免费测试
  • ·24H技术支持
最新服务器优惠活动
淘梦互联服务器支持24小时免费测试
15000+用户的选择,75240+小时稳定运行,先测试后付款,让业务不熟更放心
申请测试
免费试用
免费试用
旗下产品均支持24小时免费测试
24小时免费电话
023-88256567
客服

24H在线客服

  • 业务咨询
  • 售后服务
24小时免费电话
023-88256567