2016-10-02 48 views
2

我在一个Docker群集中有节点。我使用副本创建了官方docker nginx映像的服务。如果我使用端口映射80:80,则只能公开访问4个容器;另一个是无法访问的。Docker服务在`n-1`群集节点中创建`n`副本

docker service create --name web -p 80:80 --replicas 5 nginx 

有没有办法,我可以让所有5个nginx运行容器公开访问? (两个集装箱都在同一个节点上唯一一个可以绑定到节点的端口80)

回答

3

如果您创建n副本的服务,他们都参与服务的负载平衡。如果一个节点有多个服务实例正在运行,则当主机在端口80上获得请求时,Docker将在该主机上的容器之间分配流量。

随着4个节点的5个副本,如果你把一些测试流量,并检查响应,你应该看到,所有五个容器响应。但使用默认的nginx图片很难检查。 The answer to this question使用替代图像作为简单来验证所有容器都对流量做出响应。

+0

谢谢!我测试了你的自定义nginx镜像,现在已经有了很好的理解。真是巧合......当我在本周开始研究群体模式的信息时,你在Yube上的漫步(KC4Ad1DS8xU)是我所看到的第一件事。 – devlent

0

据我所知这是不可能的,除非服务器中的,至少一个具有多个公共LAN卡/虚拟网络连接。不知道为什么你会想要每个节点运行多个nginx实例。

+0

那么,我正在学习码头群和服务以及如何使用它们;这确实是一个理论问题。 – devlent

相关问题