weave實現宿主機之間的容器互聯html
Docker Weave簡介node
關於weave的原理不作細緻的說明,若是想了解weave能夠登錄官網:https://www.weave.works/git
注意:防火牆必定要打開6783端口,不然沒法鏈接docker
注意:開啓路由轉發vim
#vim /etc/sysctl.confcentos
net.ipv4.ip_forward = 1bash
#sysctl -p網絡
環境搭建:一共兩臺機器:兩臺機器都安裝Weave和Docker
192.168.111.128 node1
192.168.111.130 node2ide
1、在全部須要跨主機互通的docker宿主機安裝weave。
1、在node1上安裝weave,並啓動weave。
#curl -L git.io/weave -o /usr/local/bin/weave工具
#chmod a+x /usr/local/bin/weave
weave version 默認不會下載對應容器,初次運行時會提示容器不存在。你可在運行 weave launch 後在來驗證一下
在 dev-master-01 上初始化Weave網絡很是的簡單,只需運行 weave launch 命令就好了。這條命令是在容器中運行一個 weave router ,須要在每臺主機上都啓用這個服務。該服務須要三個docker容器來輔助運行,首次運行時會自動下載相關鏡像。另外執行 weave launch 以前要保證有 bridge-utils 網橋工具包
#yum install -y bridge-utils
#weave launch
等命令運行結束後,網絡就初始化好了。
另外還會生成一個名字叫weave的網橋,另外一個是Docker默認生成的。
docker中也會生成一個使用weave的網橋的自定義網絡。
weave的這些數據是保存在每臺機器上分配的名爲 weavedb 的容器上的,它是一個 data volume 容器,只負責數據的持久化。
node主機須要鏈接到master主機,只須要在 weave launch 後面跟上master主機的ip或者hostname就好了。兩臺機器就會自動創建集羣,並同步全部須要的信息。
主機 node02 鏈接到主機 node01 :
在 node02 的主機上執行
#weave launch 192.168.111.128
#weave connect 192.168.111.128
#weave version
這個命令至關於在本地啓動了 weave route ,再經過 weave connect 192.168.111.128來和192.168.111.131的route容器創建鏈接。這樣weave route就能相互找到remote主機。
運行 weave status ,能夠查看 weave 的狀態信息:
Weave有三種方式和Docker進行集成,以便運行的容器跑在Weave網絡中。
· 使用 weave run 命令直接運行容器。
· 使用 weave env 命令修改 DOKCER_HOST 環境變量的值,使 docker client 和 weave 交互, weave 和 docker daemon 交互,自動爲容器配置網絡,對用戶透明。
· 使用 weave plugin ,在運行容器的時候使用 --net=weave 參數。
咱們在node01主機上運行一臺容器,命名爲b1:
#docker run --net=weave --name b1 -it centos:node01 /bin/bash
#docker run --net=weave --name b2 -it centos:node02 /bin/bash
#eval $(weave env)
#docker run --name d1 -it centos:node01 /bin/bash
#eval $(weave env)
#docker run --name d2 -it centos:node02 /bin/bash
到此,若是沒有出現任何問題,跨主機的docker容器已經可以互聯。