设为首页 收藏本站
查看: 1317|回复: 0

[经验分享] docker容器互联

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-1 13:05:30 | 显示全部楼层 |阅读模式
1.linking系统
docker有一个linking系统可以连接多个容器。它会创建一对父子关系,父容器可以看到所选择的自容器的信息。该系统会在源和接受容器之间建立一个隧道。接受容器(父容器)可以看到源容器指定的信息。
linking系统的好处:子容器可以不用暴露到局域网中,子容器只能被父容器访问。
创建步骤:
1)先创建子容器,自定义容器的名称
wKiom1iz2Lfz5s3kAAAQ3VENUy4994.png

2)再创建父容器
wKioL1iz2LfieoPLAAATOR4IjJU886.png
--link标记的格式:--link name:alias,name是子容器的名称,alias是这个子容器的别名。

3)测试
wKiom1iz2Lnj9-pgAAA3Wv5emzI506.png
执行命令:docker  ps  --no-trunc
可以看到父容器和子容器的关系

wKioL1iz2LrChjGfAAAbkEOO7aw441.png
进入到父容器中,查看/etc/hosts文件,可以发现自动添加了子容器的解析记录。

wKioL1iz2LzA54n7AAATekvmIPA060.png
ping子容器的名称,发现可以ping通。
注意:可以链接多个子容器到父容器
  在bridge模式下,连在同一网桥上的容器可以相互通信,若出于安全考虑,可以也可以禁止他们之间的通信,方法是在DOCKER_OPTS变量中设置--icc=false,这样只有使用”--link”才能使两个容器通信。

2.不同容器之间通信借助pipework这个工具
使用pipework工具给容器分配局域网IP地址,直接将容器暴露到物理网络上。网桥的种类有两种,实现的功能也不同。
1)Bridge模式
这种模式需要定义网桥,然后以”-b”方式指定网桥,容器只能同属于一个VLAN。
创建步骤:
(1)安装pipework工具
wKiom1iz2L3DnT7_AAAGZzKOdfY915.png
解压工具包

wKioL1iz2L2hQKgCAAAHevMwCZg915.png
将pipework工具的主程序拷贝到系统命令路径即可

(2)定义并指定网桥
wKiom1iz2L6xlSRGAAAJjPgpDOk196.png
需要的依赖包

wKiom1iz2L_DguShAAALc8OgviM743.png
wKioL1iz2MDBBpjZAAAwBWLqrz4539.png
修改物理网卡

wKioL1iz2kCDKgRXAAAHYDyd2So272.png
wKiom1iz2kWBuSgQAAAQpJPgi84127.png
创建虚拟网卡,桥接到物理网卡,同时设置IP地址。

wKiom1iz2kXBQ86BAAAHP7aT9pM791.png
wKioL1iz2kiAd3HvAAA819cucXI277.png
wKioL1iz2kqSCYwAAAAPunfktAM301.png
重启network服务后,可以看到网桥配置成功。

wKioL1iz2kjB6BqLAAAGKHT-g9U025.png
停止docker服务

wKiom1iz2kmTODdrAAAG64XBCBM897.png
wKioL1iz2kmAgakJAAAHwK6T3ZY118.png
使用-b指定网桥

wKiom1iz2kmDSAqEAAAF84CGzRM477.png
启动docker服务

(3)使用镜像运行一个容器 wKiom1iz2k7i7lCMAAARIc1b7aM840.png
wKioL1iz2xuRdLJyAAAI7hdfvWk115.png
创建容器最好结合”--net=none”选项,防止自动分配IP地址在局域网中产生冲突。

(4)使用pipework工具分配IP地址
wKioL1iz2xuyhh_jAAAIXJaCNCQ570.png
执行pipework命令,定义容器网卡的IP地址,不加”-i  eth0”选项时默认指定的网卡为eth1
注意:”@”后面跟的是容器的网关,是物理网络中的网关。

(5)测试
wKioL1iz2yKg-acCAAAOKa_pi7A140.png
使用局域网中的主机ping刚创建的容器的IP地址,发现可以通信。

2)使用openvswitch网桥实现容器的VLAN划分
创建步骤:
(1)安装openvswitch及依赖包
wKiom1iz2ySTJTLcAAAOGT692Ww787.png
安装依赖包

这里将openvswitch的源码包生成了rpm包,并进行了安装。




wKioL1iz3AiQzIC_AAAGxok0HLc317.png
wKioL1iz3B6gwZ7SAAAJkhu-hno819.png
会在rpmbuild/RPMS/x86_64/目录下生成rpm包,安装第一个即可。



启动服务

(2)创建网桥ovs1,把物理网卡加到ovs1
wKiom1iz3AnBIZ-jAAAUkUcrxro669.png

wKiom1iz3AzQM8b8AAA37u6rUlM276.png
wKioL1iz3A6RXXWdAAAorsK-J-o348.png
查看ovs1和物理物理网卡的状态

同样需要安装pipework工具。

(3)测试
wKiom1iz3BXAEBnrAABDYJj2xa4219.png


这里创建了五个测试容器

wKiom1iz3Bag54CeAAAN_zacLZY067.png

五个容器的IP地址属于同一个网段,前四个属于vlan100,第五个属于vlan200
注意:”@”后面跟的就是vlan的序号。

wKiom1iz3Crgv_y2AABg46qXgU8092.png
进入容器test1,发现与test2可以通信,与test5无法通信。

wKiom1iz2xqgPatjAAAQuEgyQ4o675.png
wKioL1iz2xmz0Fl_AAAK5c4v5_A250.png
wKiom1iz2xiAxlUIAAAJ0V2V3jI988.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348868-1-1.html 上篇帖子: docker网桥 下篇帖子: docker volume
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表