weave實現宿主機之間的容器互聯

weave實現宿主機之間的容器互聯html

Docker Weave簡介node

關於weave的原理不作細緻的說明,若是想了解weave能夠登錄官網:https://www.weave.works/git

wKioL1nYFWqiEHdBAACLNmcgnwk176.png

wKiom1nYFcryM9-mAADMkjIFs6o762.png

注意:防火牆必定要打開6783端口,不然沒法鏈接docker

注意:開啓路由轉發vim

#vim /etc/sysctl.confcentos

net.ipv4.ip_forward = 1bash

#sysctl  -p網絡

環境搭建:一共兩臺機器:兩臺機器都安裝WeaveDocker
192.168.111.128  node1
192.168.111.130  node2ide

1、在全部須要跨主機互通的docker宿主機安裝weave
1node1上安裝weave,並啓動weave
#curl  -L  git.io/weave  -o  /usr/local/bin/weave工具

#chmod  a+x   /usr/local/bin/weave

wKioL1nYFYyhA9c7AAANELt2yYM896.png

weave version 默認不會下載對應容器,初次運行時會提示容器不存在。你可在運行 weave launch 後在來驗證一下

初始化Weave網絡

dev-master-01 上初始化Weave網絡很是的簡單,只需運行 weave launch 命令就好了。這條命令是在容器中運行一個 weave router ,須要在每臺主機上都啓用這個服務。該服務須要三個docker容器來輔助運行,首次運行時會自動下載相關鏡像。另外執行 weave launch 以前要保證有 bridge-utils 網橋工具包

#yum  install  -y bridge-utils

#weave   launch  

wKiom1nYFerjVP2SAACMPervkoE239.png

等命令運行結束後,網絡就初始化好了

wKioL1nYFevj-2lfAAAaXjTGDQ4705.png

另外還會生成一個名字叫weave的網橋,另外一個是Docker默認生成的。

wKioL1nYFfWgpEWtAAAdP00ec0E112.png

wKiom1nYFlCCULxmAAA0Ygy-WVY676.png

docker中也會生成一個使用weave的網橋的自定義網絡。

wKioL1nYFhKgGvysAAAfV78BabE241.png

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

wKiom1nYFm_SpOhJAAAM48FS-C4274.png

這個命令至關於在本地啓動了 weave route ,再經過 weave connect 192.168.111.128來和192.168.111.131route容器創建鏈接。這樣weave route就能相互找到remote主機。

wKioL1nYFjGxpKy_AAAbe6EMfc8212.png

運行 weave status ,能夠查看 weave 的狀態信息:

wKiom1nYFoqTP5_2AACQ12YVRpI923.png

wKioL1nYFpuSO22QAAALoUztQtY298.png

Weave有三種方式和Docker進行集成,以便運行的容器跑在Weave網絡中。

· 使用 weave run 命令直接運行容器。

· 使用 weave env 命令修改 DOKCER_HOST 環境變量的值,使 docker client  weave 交互, weave  docker daemon 交互,自動爲容器配置網絡,對用戶透明。

· 使用 weave plugin ,在運行容器的時候使用 --net=weave 參數。

使用 weave run 命令直接運行容器

咱們在node01主機上運行一臺容器,命名爲b1

#docker run  --net=weave --name  b1  -it  centos:node01 /bin/bash

wKiom1nYFviR1MfxAABqM46Tw9w105.png

wKioL1nYFriBk3aHAAB5zNB42Z8602.png

#docker  run  --net=weave --name b2  -it  centos:node02  /bin/bash

wKiom1nYFxPyqOW_AAB3gc2XA8M264.png

wKioL1nYFtPBuGTkAABI29Rpljw081.png

使用 weave env 命令運行容器

#eval $(weave env)

#docker run --name d1 -it centos:node01 /bin/bash

wKiom1nYFyzT9fz8AABnBGLfUtg057.png

 

wKioL1nYFvWSQPrEAABLEu8ARVQ630.png

#eval   $(weave env)

#docker  run  --name  d2  -it centos:node02  /bin/bash

wKiom1nYF1WCWL3qAABnYtxXX98735.png

wKioL1nYFxPhVoGoAABq0yScja8953.png

到此,若是沒有出現任何問題,跨主機的docker容器已經可以互聯。

使用weave實現跨主機docker容器互聯

相關文章
相關標籤/搜索