Docker服务在`n-1` swarm节点中创建`n`副本

时间:2016-10-02 01:28:38

标签: docker

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

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

有没有办法,我可以公开访问所有5个nginx运行容器吗? (其中两个容器位于同一节点,只有一个容器可以绑定到节点的端口80)

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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