【转】Docker网络模式--默认模式bridge模式
一 引言
当 Docker 启动时,会自动在主机上创建一个名为 docker0 虚拟网桥,这实际上就是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。
系统会为这个 docker0 分配一个私有网段的ip。如ip地址为172.17.0.1子网掩码为255.255.0.0。
当我们创建一个新的容器时,同时会创建了一对veth pair接口(即对等接口,当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 eth0;另一端在本地并被挂载到 docker0 网桥,名称以 veth 开头。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。

二 验证过程
可以看到随机生成了两个名称为veth9454074和vethe9b7cb1的interfaces。
查看容器的网络信息
docker inspect tomcat2

可以看到,容器内有一个名为eth0的网络接口,ip为172.17.0.2。
可以看出来,在容器中输出的路由信息,由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地址为容器的默认网关。
【转】Docker网络模式--默认模式bridge模式的更多相关文章
- KVM修改虚机网卡模式:由NAT模式改为Bridge模式
1)关闭虚机# virsh shutdown vm1 2)编辑虚机配置文件# virsh edit vm1 <interface type='default'> 改为<int ...
- 037.集群网络-Docker网络实现
一 Docker网络 1.1 Docker网络类型 标准的Docker支持以下4类网络模式: host模式:使用--net=host指定. container模式:使用--net=container: ...
- Docker网络模式说明
现在的Docker版本不推荐继续使用Link了,而是推荐用网络模式解决问题,简单讲一下最常用的几个网络模式,其他我用到时候再补充. bridge -net不加参数就是默认的bridge模式,这个默认b ...
- docker 网络模式详解
一.前言 Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理.然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分.因此,我们有必要 ...
- Docker网络模式详解
一.Docker四种工作模式 安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .hosthost:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用 ...
- 设计模式(7)-结构型模式-Bridge模式
2.结构性模式 2.2 BRIDGE模式 别名:handle/body 这个模式体现了组合相对于继承的优势. 2.2.1动机 当一个抽象可能有多个实现时,通经常使用继承来协调它们.抽象类定义对该抽象 ...
- 理解Docker(5):Docker 网络
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- docker网络之(三)
docker4种网络 基于docker run创建容器时,可以使用--net选项指定容器的网络模式:Docker默认有以下4种网络模式: host模式,使用--net=host指定 container ...
- 理解Docker :Docker 网络
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- (转)Docker 网络
转:https://www.cnblogs.com/allcloud/p/7150564.html 本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker ...
随机推荐
- 其他-使用 ProcessExplorer 定位 win10 系统资源占用
1. 概述 使用 ProcessExplorer 2. 环境 os win10 3. 背景 偶然在论坛上看到了一个工具 ProcessExplorer 作用是 定位当前桌面窗口 对应的 进程 我没有这 ...
- sysbench下载与安装
目标:下载.安装sysbench软件,做数据库压测 准备: 在sysbench启动的linux机器上,首先安装好mysql,查看mysql已经启动 例如,在机器上已经安装完mysql,其路径为 /us ...
- JAVA 注解教程(三)注解的属性
简介 注解的属性也叫做成员变量,注解只有成员变量,没有方法.注解的成员变量在注解的定义中以“无形参的方法”形式来声明,其方法名定义了该成员变量的名字,其返回值定义了该成员变量的类型 实例 @Targe ...
- path is not a working copy directory
svn: 'G:\chengXu\2017_Year\JFW\Easy7\WebRoot' is not a working copy directory 解决方法: (1)原因:eclipse把sr ...
- C语言二维数组指针与指针数组
http://c.biancheng.net/view/2022.html http://c.biancheng.net/view/2020.html
- java基础之 数据类型
数据类型表示要存储在变量中的不同类型的值. 一.Java语言提供了八种基本数据类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. 1. byte byte 数据类型是8位.有 ...
- 1.6 APP需要怎么测试
来源: https://tieba.baidu.com/p/5011439767 http://www.cnblogs.com/testwriter/p/6702624.html ...
- 题解【CJOJ1070/UVA】嵌套矩形
P1070 - [Uva]嵌套矩形 Description 有 n 个矩形,每个矩形可以用两个整数 a, b 描述,表示它的长和宽.矩形 X(a, b) 可以嵌套在矩形 Y(c, d) 中当且仅当 a ...
- SpringBoot获取http请求参数的方法
SpringBoot获取http请求参数的方法 原文:https://www.cnblogs.com/zhanglijun/p/9403483.html 有七种Java后台获取前端传来参数的方法,稍微 ...
- C#中通过SendARP读取MAC地址
C#中通过SendARP读取MAC地址: using System.Runtime.InteropServices; publicstaticstring GetMacBySendARP(string ...