2016-01-20 153 views
7

我按照通過位於getting started overlay的例子,我有一個簡單的查詢使用覆蓋多主機的網絡功能所需羣。是否可以在不創建swarm cluster的情況下使用疊加使用多主機網絡功能?我不想使用像編織等第三方插件。我想使用docker本地網絡支持。是使用在泊塢窗

我有3.16+ kernel運行RHEL和docker 1.9

回答

8

是的,這是可能的:看 「Lab 6: Docker Networking」。
覆蓋網絡的關鍵部分是發現服務,例如Consul

覆蓋網絡需要一個key-value存儲。
該商店維護有關網絡狀態的信息,其中包括髮現,網絡,端點,IP地址等。引擎支持Consul,etcd和ZooKeeper(分佈式存儲)鍵值存儲存儲。

https://github.com/docker/dceu_tutorials/raw/master/images/tut6-step1.png

文章「Docker Networks: Discovering Services on an Overlay」產卵約的,不以單個容器註冊或搜索內置當前服務發現工具的一些批評。

覆蓋底層使用KV存儲到網絡拓撲模型和啓用跨主機容器到容器連通。它不提供SRV record分辨率。

問題是,在覆蓋網絡中,每個容器都有自己的IP地址。
因此,您可以完成這項工作的唯一方法是在網絡上每個提供服務的容器中運行Consul代理。這對開發人員來說肯定是不透明的,或者與現成的圖像兼容。

+0

感謝@VonC。我以某種方式沒有意識到這個文檔在github上的可用性。 :-) –

+0

還有一個疑問@VonC,我們能否在其中一個要運行集羣容器的節點上啓動「KV」存儲圖像(動物園管理員等)? –

+1

@AnkitKumar是的,你可以。不要忘了重新啓動,按照正確的選項泊塢窗(https://github.com/docker/dceu_tutorials/blob/94fd5f3e9372a8f58ca7b25f3232305731f7cd36/06-networking.md#task-2-configure-the-engine-to-use-key-值存儲)。該節點需要其他人可以訪問。儘管如此,最好將它保留在自己的節點上。 – VonC