2016-10-02 49 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

相關問題