您的位置:首页 > 运维架构 > Docker

Docker容器的跨主机访问

2015-08-04 22:28 651 查看

Docker容器的跨主机访问

使用网桥实现跨网段访问




主机1 :192.168.22.101 主机2:192.168.22.102
安装网桥管理工具#sudo apt-get install bridge-until
配置网卡地址# sudo vim /etc/network/interfaces
配置其中一块网卡的网络参数,另一块网卡配置参数一样,这里不在演示



重新启动网卡
# sudo /etc/init.d/networking restart
查看网络配置,发现eth0已经没有地址而br1有地址



在另一台主机上执行相同的操作,这里我们就不演示了
编辑docker的配置文件实现使用br1来启动docker
# sudo vim /etc/default/docker
--fixed-cidr 限定ip地址的分配范围
192.168.22.102配置



192.168.22.101配置



我们在192.168.22.101上启动一个容器,查看下ip地址,是否在我们分配的范围内



我们在192.168.22.102上在启动一个容器,看下ip是否在我们分配的范围内



测试一下这两个容器是否可以互联,发现完全没有问题。



open-vswitch实现跨网段访问

open vswitch是什么?
open vswitch是一个高质量的,多层虚拟交换机,简称ovs。
拓扑



安装open vswitch
#sudo apt-get install -y openvswitch-switch
建立ovs网桥
#sudo ovs-vsctl add-br obr0
添加gre连接
# sudo ovs-vsctl add-port obr0 gre0
配置docker容器虚拟网桥,其中romote_ip指定对方ip
#sudo ovs-vsctl set interface gre0 type=gre options:romote_ip=192.168.22.101
查看一下我们的ovs配置
#sudo ovs-vsctl show



创建br0桥接到obr0
sudo brctl addbr br0
sudo ifconfig br0 192.168.200.1 netmask255.255.255.0
sudo brctl addif br0 obr0



编辑docker的配置文件
# sudo vim /etc/default/docker



向两端添加去对方的默认路由
# sudo ip route add 192.168.100.0/24 via192.168.22.101 dev eth0
在192.168.22.102上启动一个容器




在192.168.22.101上启动一个容器



测试一下网络,发现两端是可以连通的



weave实现跨网段访问

weave是什么呢?weave创建了一个虚拟网络,用来连接部署在多台机器上的docker容器



安装weave
# sudo wget -O /usr/local/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave
# sudo chmod a+x /usr/local/bin/weave
启动weave
# weave launch



主机ip地址192.168.22.102 192.168.22.105
启动第二台主机的weave 并指定对方的ip地址
#weavelaunch 192.168.22.102
在一台主机上启动一个容器
weave run192.168.200.2/24 -it --name dk1 192.168.22.103:5000/ubuntu
sudo dockerattach dk1



在另一台主机上启动一个容器
# weave run192.168.200.3/24 -it --name dk2 192.168.22.103:5000/ubuntu
sudo dockerattach dk2



测试一下网络




本文出自 “linux 虚拟化” 博客,请务必保留此出处http://itjcw.blog.51cto.com/3428881/1681737
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: