码迷,mamicode.com
首页 > 数据库 > 详细

#DDBMS#构建一个简单的docker网络

时间:2015-02-16 00:34:18      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

拓扑图如下:

host1:10.20.10.70

host2:10.20.10.71

技术分享

分别在主机1和主机2上创建一个ovs交换机:

ovs-vsctl add-br ovs0
ip link set ovs0 up

分别为ovs0添加一个port(br0在同一网段):

ovs-vsctl add-port ovs0 br0

在主机1创建通往host2的gre隧道:

ovs-vsctl add-port ovs0 gre0 -- set interface gre0 type=gre options:remote_ip=10.20.10.71

在主机2创建通往host1的gre隧道:

ovs-vsctl add-port ovs0 gre0 -- set interface gre0 type=gre options:remote_ip=10.20.10.70

在主机1上启动一个容器(使用pipework把容器挂在br0上,分配的ip地址为192.168.2.10):

./ldocker.sh

在主机2上启动一个容器(使用pipework把容器挂在br0上,分配的ip地址为192.168.2.11):

./ldocker.sh

进入主机1上的容器,ping主机2上的容器:

可以ping通。。。



配置成功


host1上的ldocker.sh代码如下(反复试验的原因,打到手软了,所以用个简单脚本):

#!/bin/sh
docker run -itd --name=test1 hochikong/erbuntu:v1
pipework br0 test1 192.168.2.10/24

关于如何进入容器操作ping,请参见本人另一博文:http://my.oschina.net/hochikong/blog/369036


总结:这样的方案可以让同一网段的容器跨机器进行通讯,实现了应用的灵活部署。另外,我的拓扑和这个架构(http://www.sdnlab.com/8236.html)实现的功能是一样的,大家也可以参考下,不过我是bridge和OVS混用的,还可以在ovs0上实现VLAN,目前还没发现有什么大问题。

另外我尝试为ovs0配置ip,两个ovs0配置同一网段的ip(比如10.0.0.1和10.0.0.2),网络也可以通讯,去掉也没问题。

接下来我要尝试在两个host上创建多个这样的网络,测试结果迟些出吧。

#DDBMS#构建一个简单的docker网络

标签:

原文地址:http://my.oschina.net/hochikong/blog/378865

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!