频道栏目
首页 > 资讯 > 云计算 > 正文

Docker网络默认模式bridge模式

18-05-04        来源:[db:作者]  
收藏   我要投稿
一 引言当 Docker 启动时,会自动在主机上创建一个名为 docker0 虚拟网桥,这实际上就是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。系统会为这个 docker0 分配一个私有网段的ip。如ip地址为172.17.0.1子网掩码为255.255.0.0。当我们创建一个新的容器时,同时会创建了一对veth pair接口(即对等接口,当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 eth0;另一端在本地并被挂载到 docker0 网桥,名称以 veth 开头。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。
二 验证过程先创建两个容器:docker run -itd -P --name tomcat1 tomcatdocker run -itd -P --name tomcat2 tomcatifconfig可以看到随机生成了两个名称为veth9454074和vethe9b7cb1的interfaces。查看主机网桥配置。brctl show两个容器的网络端口都挂载到了 docker0 上。docker ps查看运行的docker容器。查看容器的网络信息docker inspect tomcat1docker inspect tomcat2可以看出,这里两个容器的网关都是172.17.0.1,即 docker 在物理主机上创建的 docker0 虚拟网桥。ip地址分别为172.17.0.2和172.17.0.3。进入到容器tomcat1中。在容器中执行下面的命令,可以查看容器的网络信息。ip addr show可以看到,容器内有一个名为eth0的网络接口,ip为172.17.0.2。查看容器转发信息ip route show
可以看出来,在容器中输出的路由信息,由172.17.0.0/16可知子网掩码是255.255.0.0。由此可知,docker的docker0 虚拟网桥和容器里的eth0都是属于同一个子网的。这些网络配置和使用docker inspect查询出来的也是一致的。同时可以验证,容器(tomcat1)与容器(tomcat2)之间,主机与容器之间,容器与主机之间的网络都是联通的。通过分析,上面的网络拓扑如下:
三 网络配置的过程所以,Docker完成以上网络配置的过程大致是这样的1 在主机上创建一对虚拟网卡veth pair设备。2 Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0。另一端放在主机中,以veth*这样类似的名字命名,并将这个网络设备加入到docker0网桥中。3 从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。
相关TAG标签
上一篇:vmware虚拟机在ubuntu 14.04下桥接静态ip
下一篇:oracle表空间不够的处理方法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站