2015-12-19 48 views
3

我目前有3個EC2實例設置了Docker Swarm和Consul。我有3個簡單的節點應用遍佈所有3個實例,然後nginx在我的swarm主機上進行路由。Docker Swarm - 網絡覆蓋未連接所有容器

使用Overlay Networks指南,我創建了一個名爲mynet的新疊加層,並將每個容器連接到此網絡。使用docker inspect我可以確認每個節點容器和nginx容器都連接到mynet並具有IP。但是,在轉入我的nginx容器後,它只能通過網絡與位於同一主機上的節點應用程序通信,而不能與羣集中其他主機上的節點應用程序通信。

運行docker network inspect mynet後,只列出了兩個容器(同一主機上的nginx和一個節點實例),而其他兩個容器未列出,即使它們具有該覆蓋層的名稱和IP來自docker inspect的網絡。

的想法是使用nginx reverse proxy補充說,來新容器,網上它的配置,但我堅持在得到容器所有連接。根據Docker networking docs for overlay這應該是可能的。

我在做什麼錯?謝謝。

編輯:

濫發docker network inspect mynet幾次後,它看起來像集裝箱都在不斷的連接,並從網絡斷開,即使我有所有的防火牆關閉,打開的端口用於測試目的。什麼會導致這樣的事情?

回答

3

原來有兩個問題導致我的問題。

一個是我使用的內核3.13,其中docker network overlay不支持。升級到3.16解決了這個問題。其次是Swarm 1.0.1中存在一個錯誤,它能夠正確聚合網絡信息。它已被修復here,但截至編寫時尚未公佈。

相關問題