t434111 发表于 2015-8-5 09:00:14

Docker容器的跨主机访问

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=greoptions:romote_ip=192.168.22.101查看一下我们的ovs配置#sudo ovs-vsctl show创建br0桥接到obr0sudo brctl addbr br0sudo ifconfig br0 192.168.200.1 netmask255.255.255.0sudo 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.102192.168.22.105启动第二台主机的weave 并指定对方的ip地址#weavelaunch 192.168.22.102在一台主机上启动一个容器weave run192.168.200.2/24 -it --name dk1 192.168.22.103:5000/ubuntusudo dockerattach dk1在另一台主机上启动一个容器# weave run192.168.200.3/24 -it --name dk2 192.168.22.103:5000/ubuntusudo dockerattach dk2测试一下网络
页: [1]
查看完整版本: Docker容器的跨主机访问