自己学Docker:13.Docker网络模式1--默认模式bridge模式

原创 2017年06月20日 15:55:28

当 Docker 启动时,会自动在主机上创建一个名为 docker0 虚拟网桥,这实际上就是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。
这里写图片描述
系统会为这个docker0 分配一个私有网段的ip。如ip地址为172.17.0.1子网掩码为255.255.0.0。

当我们创建一个新的容器时,同时会创建了一对veth pair接口(即对等接口,当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 eth0;另一端在本地并被挂载到 docker0 网桥,名称以 veth 开头。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。

过程分析

下面,来验证这个问题。
先创建两个容器:

sudo docker run -itd -P tomcat
sudo docker run -itd -P tomcat

这里写图片描述
可以看到随机生成了两个名称为veth0e50c02和vethbb96690的interfaces。

查看主机网桥配置(brctl可以通过sudo apt install bridge-utils命令安装):

brctl show

这里写图片描述
两个容器的网络端口都挂载到了docker0上。

sudo docker ps

查看运行的docker容器。
这里写图片描述

sudo docker inspect 419988cde703
sudo docker inspect 4cc78bf3d858

可以看到两个容器的网络信息,由于输出较多,这里只列出网络信息相关部分。
这里写图片描述
这里写图片描述
可以看出,这里两个容器的网关都是172.17.0.1,即docker在物理主机上创建的 docker0 虚拟网桥。ip地址分别为172.17.0.2和172.17.0.3。

进入到容器419988cde703中

这里写代码片

通过在容器中执行下面的命令,可以查看容器的网络信息。

ip addr show

这里写图片描述
可以看到,容器内有一个名为eth0的网络接口,ip为172.17.0.1。

查看容器转发信息

ip route show

这里写图片描述
可以看出来,在容器中输出的路由信息,由172.17.0.0/16可知子网掩码是255.255.0.0。由此可知,docker的docker0 虚拟网桥和容器里的eth0都是属于同一个子网的。
这些网络配置和使用docker inspect查询出来的也是一致的。

同时可以验证,容器(419988cde703)与容器(4cc78bf3d858)之间,主机与容器之间,容器与主机之间的网络都是联通的。
这里写图片描述

通过分析,上面的网络拓扑如下:
这里写图片描述

网络配置的过程

所以,Docker完成以上网络配置的过程大致是这样的:

  1. 在主机上创建一对虚拟网卡veth pair设备。
  2. Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0。另一端放在主机中,以veth*这样类似的名字命名,并将这个网络设备加入到docker0网桥中。
  3. 从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Docker之四种网络模式

title: Docker之四种网络模式 date: 2015-11-11 15:19:20 tags: dockercategories: Docker NetworkDocker网络有四种模式...

浅析Docker的网络模式

使用下面的命令启动一个交互的container后,使用netstat –r可以看到其中的路由信息。  [root@centos~]# docker run -i -t centos6.3-base-...

忽视的Docker网络模式

每当有人问起docker的网络模式时,首先想起的网络模式便是: none host bridge overlay 那么只有这几种模式么?其实,还有一种一直被忽略的网络模式container模式。那么什...

多主机网络下 Docker Swarm 模式的容器管理

导读 本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理。 Docker Engine – Swarm 模式 在多...

Docker的网络模式及Pipework工具介绍(转)

转自:http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-practice/ ...

多主机网络下 Docker Swarm 模式的容器管理

本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理。

Docker的四种网络模式

Docker的四种网络模式 docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:  bridge模式:使用–net =bridge...

docker的五种网络模式总结

docker的网络模式大致可以分成五种类型,在安装完docker之后,宿主机上会创建三个网络,分别是bridge网络,host网络,none网络,可以使用docker network ls命令查看。 ...
  • Belug
  • Belug
  • 2017-07-20 15:36
  • 410

Docker四种网络模式

四种网络模式host模式使用docker run时使用–net=host指定 Docker使用的网络实际上和宿主机一样,在容器内看到的网卡ip是宿主机上的ip。[root@localhost ~]#...
  • Noob_f
  • Noob_f
  • 2016-10-20 18:26
  • 1147

Docker 使用物理网络IP地址 及四种网络模式

一、编辑网卡配置文件,桥接网卡 生成br0网卡配置文件 cd /etc/sysconfig/network-scripts/ cp ifcfg-eth0 ifcfg-eth0.bak cp ifcf...
  • fgf00
  • fgf00
  • 2016-09-18 16:25
  • 5029
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)