Docker跨主機通信:橋接方式和路由方式


1、直接路由  

  通過在主機中添加靜態路由來實現跨主機通信。如果有兩台主機host1和host2,兩主機上的docker容器是兩個獨立的二層網絡,將con1發往con2的數據流先轉發到主機host2上,再由host2轉發到其上的docker容器中,反之亦然。

  由於使用容器的IP進行路由,就需要避免不同主機上的docker容器使用相同沖突的IP,所有應該為不同的主機分配不同的IP子網。

 

#主機A上:192.168.187.143,主機B:192.168.187.144
#S1:添加網卡docker0,我們這里為了區別docker默認的網卡docker0,使用其他名字br0
brctl addbr br0

#S2:配置網卡,添加路由
ifconfig br0 172.17.1.1/24 up
ip route add 172.17.2.0/24 via 192.168.187.144  #主機B的IP地址

#S3:啟動docker服務
service docker stop
docker daemon -b=br0 

#S4:啟動一個容器
docker run -it ubuntu:14.04 bash

#S5:進入容器,其IP地址應該為172.17.1.2

#主機B上:192.168.187.144
#S1:添加網卡docker0,我們這里為了區別docker默認的網卡docker0,使用其他名字br0
brctl addbr br0

#S2:配置網卡,添加路由
ifconfig br0 172.17.2.1/24 up
ip route add 172.17.1.0/24 via 192.168.187.143  #主機A的IP地址

#S3:啟動docker服務
service docker stop
docker daemon -b=br0 

#S4:啟動一個容器
docker run -it ubuntu:14.04 bash

#S5:進入容器,其IP地址應該為172.17.2.2
ping 172.17.1.2 #成功通信

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM