分享

docker 实战三---多台物理主机的联网,容器桥接到物理网络

desehawk 发表于 2014-8-31 15:27:22 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 0 75870
本帖最后由 desehawk 于 2014-8-31 15:51 编辑

问题导读:
1.docker默认桥接卡是什么?
2.如何创建网桥?
3.把容器暴露到物理网络上了会有什么问题?





多台物理主机的联网,容器桥接到物理网络


docker 默认的桥接网卡是docker0
它只会在本机桥接所有的容器网卡,举例来说容器的虚拟网卡在主机上看一般叫做veth***  而docker只是把所有这些网卡桥接在一起,如下图:

1.png


在容器中看到的地址一般是像下面这样的地址:

2.png


这样就可以把这个网络看成是一个私有的网络,通过nat 连接外网,如果要让外网连接到容器中,就需要做端口映射,即-p参数
(更多原理参见-高级网络配置  http://blog.csdn.net/smallfish1983/article/details/38701067
如果在企业内部应用,或则做多个物理主机的集群,可能需要将多个物理主机的容器组到一个物理网络中来,那么就需要将这个网桥桥接到我们指定的网卡上。下面以ubuntu为例创建多个主机的容器联网。

创建自己的网桥
编辑/etc/network/interface文件

3.png


将docker的默认网桥绑定到这个新建的br0上面,这样就将这台机器上容器绑定到em1这个网卡所对应的物理网络上了。ubuntu修改/etc/default/docker文件 添加最后一行内容

4.png


这改变默认的docker网卡绑定,你也可以创建多个网桥绑定到多个物理网卡上,在启动docker的时候 使用-b参数 绑定到多个不同的物理网络上。
重启docker服务后,再进入容器可以看到它已经绑定到你的物理网络上了,

5.png


这样就直接把容器暴露到你的物理网络上了,多台物理主机的容器也可以相互联网了。需要注意的是,这样就需要自己来保证容器的网络安全了。

6.png



多台物理主机的联网,容器桥接到物理网络拓扑图

很多朋友说上一篇中对网络的描述不够清楚,感谢热心的群友彩笔程序员: 提供了他理解的图,在这里贴一下:

1.jpg


我自己也补画了一副多台机器互联的图,欢迎大家留言讨论:

2.jpg


主机A和主机B的网卡一都连着物理交换机的同一个vlan 101,这样网桥一和网桥三就相当于在同一个物理网络中了,而容器一、容器三、容器四也在同一物理网络中了,他们之间可以相互通信。
主机A上的网卡二连接了vlan102 桥接网桥二,它不与其他物理主机和容器相通。







中小企业docker环境搭建

docker对于中小企业来说,搭建paas没有那个精力,也没那个必要,用做个人的sandbox用处又小了点,个人认为作为中小企业可以用docker来标准化开发、测试、生产环境。
画了简单的图:

3.jpg


docker占用资源小,在一台E5 128G内存的服务器服务器上部署100个容器都绰绰有余,可以单独抽一个容器或则直接在宿主物理主机上部署samba,利用samba的home分享方案将每个用户的home目录映射到开发中心和测试部门的windows机器上。可以针对项目组,由架构师搭建好一个标准的容器环境供项目组和测试部门使用,每个开发工程师可以拥有自己单独的容器,通过docker run -v 将用户的home目录映射到容器中。需要提交测试时,只需要将代码移交给测试部门,然后分配一个容器使用-v 加载测试部门的home目录启动即可。这样,在公司内部的开发、测试基本就统一了,不会出现开发提交的代码,测试 部门部署不了的问题。

测试发布测试通过的报告后,架构师再一次检测容器环境,就可以直接交由部署工程师将代码和容器分别部署到生产环境中了。这种方式的部署横向性能的扩展性也极好。


上一篇:
docker 实战二:部署tomcat\weblogic集群


没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条