关闭

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

标签: docker
988人阅读 评论(0) 收藏 举报
分类:

当 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地址为容器的默认网关。
1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

docker的host、bridge网络类型

1.1 host模式 众所周知,Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network...
  • liukuan73
  • liukuan73
  • 2016-06-07 13:54
  • 11747

[docker]docker的四种网络方式

声明:本博客欢迎转发,但请保留原作者信息!博客地址:http://blog.csdn.net/halcyonbaby内容系本人学习、研究和总结,如有雷同,实属荣幸!bridge方式(默认)Host I...
  • halcyonbaby
  • halcyonbaby
  • 2014-12-23 22:51
  • 58241

Docker使用桥接的通信方案

2015-10-30 wcdj Docker提供了四种网络通信方式,每种方式的特点可以参考:https://docs.docker.com/articles/networking/ (1) br...
  • delphiwcdj
  • delphiwcdj
  • 2015-10-30 11:29
  • 6404

docker的2网络模式

我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: · host模式,使用--net=host指定。 · con...
  • zengxiaosen
  • zengxiaosen
  • 2017-12-26 21:49
  • 37

Docker之四种网络模式

title: Docker之四种网络模式 date: 2015-11-11 15:19:20 tags: dockercategories: Docker NetworkDocker网络有四种模式...
  • vchy_zhao
  • vchy_zhao
  • 2017-04-20 16:35
  • 394

docker的五种网络模式总结

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

VMware、Docker虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT

一 、 背景知识 VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解...
  • a568418299
  • a568418299
  • 2017-12-25 13:25
  • 79

Docker的四种网络模式

Docker的四种网络模式 docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:  bridge模式:使用–net =bridge...
  • huanongying123
  • huanongying123
  • 2017-06-21 23:04
  • 337

Docker四种网络模式

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

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

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