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
测试一下网络
|