码迷,mamicode.com
首页 > 其他好文 > 详细

Docker学习<六>

时间:2018-10-28 11:25:01      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:端口映射   oca   code   之间   target   overlay   自己的   网络配置   两台   

Docker跨主机网络

overlay

准备overlay网络实验环境

      以容器的方式运行consul

sudo docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap

技术分享图片

      容器启动后,可以通过http://10.211.55.20:8500来访问consul 

技术分享图片

      接下来修改两个主机的docker daemon配置文件,其配置文件的路径如下

/ect/stsytmd/system/multi-user.target.wants/docker.service 

技术分享图片

      -H来允许远程主机连接

      --cluster-store指定consul的地址

      --cluster-advertise告知consul自己的连接地址

      修改完配置文件后重启docker daemon

sudo systemctl daemon-reload

sudo systemctl restart docker.service 

技术分享图片

      两个主机将自动注册到consul数据库中 

技术分享图片

 

创建overlay网络

      在第一台主机上创建overlay网络overlay_net1 

技术分享图片

      -d overlay指定driver为overlay

      用docker network ls来查看网络 

技术分享图片

      overlay_net1的SCOPE为global,而其他网络为local,在第二台主机上查看存在的网络 

技术分享图片

      结果表明,在第二台主机上也能看到overlay_net1。这是因为创建overlay_net1时第一台主机将网络信息存入了consul,第二台主机从consul中读取到了新的网络数据,之后overlay_net1的任何变化都会同步到两台主机

      用docker network inspect overlay_net1来查看创建的overlay的详细信息 

技术分享图片

 

overlay中运行容器

      用前面创建的overlay网络创建一个容器,并查看容器的网络配置信息

技术分享图片

      test15容器有两个网络接口eth0和eth1。eth0的IP为10.0.0.2,连接的是overlay网络。eth1的IP为172.18.0.2,容器默认路由是走eth1。docker会创建一个bridge网络“docker_gwbridge”,为所有连接到overlay网络的容器提供访问外网的能力 

技术分享图片

      可以用docker network inspect来查看它的详细信息 

技术分享图片

      这样容器就可以通过docker_gwbridge访问外网 

技术分享图片

      如果外网要访问容器,可以通过主机端口映射,例如

sudo docker run -p 80:80 -d --net overlay_net1 --name web1 httpd

 

overlay实现跨主机通信

      前面在一台主机上运行了容器test15,现在在另一台主机上运行容器test16,并查看容器的网络信息 

技术分享图片

      test16的IP为10.0.0.3,在test16容器里面直接ping容器test15,由结果可以看出这两个容器间可以通信,同时docker也实现了DNS服务 

技术分享图片

      可以用以下方法来查看overlay网络的namespace,可以看出两个主机上有相同的namespace 

技术分享图片

技术分享图片

 

overlay的隔离

      不同的overlay网络是相互隔离的。这里创建第二个overlay网络,并运行容器test17 

技术分享图片

      ping失败,可见不同overlay网络之间是隔离的,即便是通过docker_gwbridge也不能通信 

技术分享图片

      要实现test15与test17通信,可以将test17也连接到overlay_net1中 

技术分享图片

 

Docker学习<六>

标签:端口映射   oca   code   之间   target   overlay   自己的   网络配置   两台   

原文地址:https://www.cnblogs.com/chenjin2018/p/9864574.html

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