- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ker网络原理揭秘
Docker 网络原理揭秘
Docker 使用 linux 的bridge 和veth 虚拟网络设备,以及network
namespace 对网络进行虚拟化。Bridge 看其名字是网桥,但实际上它
的功能和交换机(switch)相似。Veth 则是一对网络接口,像是用一条
网线连接起来的两块网卡。阅读这篇文章前,应该先了解 linux 的
bridge 和veth 的原理和用法,熟悉brctl, ip, iptables三个重要
命令的使用方法。
一、Docker 经典网络架构:
从上图可知,每个docker 容器通过一对veth 连入bridge br0。Veth
的一端在docker netns 中,通常改名为eth0;另一端在default或
global netns 中,通常命名为 vethXXXXXXXX。上图中将其命名为
vnic11和vnic21。
Bridge br0 自带一个网络接口,相当于主机的一张网卡,它的名字也
叫br0。上图相当于一个bridgebr0 连接了三台机器:host,docker1,
docker2,它们形成了一个独立的LAN。而主机的eth0 则将主机连接
到外部的交换机,和交换上的其它主机形成一个LAN。
现在配置网络的IP:
Host 的eth0:将主机连接到外部交换机。Ip=81/24, 主
机的网关为 dev eth0。
Host 的 br0 网络接口: 将主机连接到内部交换机 br0 。
Ip=/16。注意,当同时为主机的eth0 和br0 设置IP时,它
俩不能处于同一网段。
Docker1 的eth0:将docker1连接到交换机br0。Ip=00/16。
Docker1 网关为。
Docker2 的eth0:将docker2 连接到交换机br0。Ip=00/16。
Docker2 网关为。
这样docker1,docker2 以及host 所形成的LAN 就配置好了,它的网
段为/16。现在,docker1、docker2 以及主机,这三台设备
可以正常通信了。
那么,docker1 和docker2 如何才能访问host 以外的世界呢?答案
是NAT。也就是需要配置转发机制,在网络接口host:br0和host:eth0
之间转发数据包。配置转发机制首先要开启linux 的网络转发功能,
然后要在iptables 中配置SNAT 源地址转换。
上面就是 docker 默认使用的网络模式(--net=bridge)。Docker
daemon 一启动,就会创建bridge,不过名字叫做 docker0。并将网
口docker0 的IP 配成了 /16。以后每启动一个容器,就
自动为该容器创建vethpair,将一端连到bridge docker0,将另一
端放入容器内,改名为 eth0 。容器内的 eth0 的 ip 配置为
172.17.x.x/16,容器的网关配置为。
下面,我们用命令一步一步创建该网络,以加深对docker 网络原理
的理解。
1. 启动两个docker 容器,不要让docker 自动配置网络
docker run –itd --name=docker1 --net=none test/ubuntu:14
/bin/bash
docker run –itd --name=docker2 --net=none test/ubuntu:14
/bin/bash
2. 找到容器的 netns,将其连接到/var/run/netns/下,以便为其配
置网卡。
先找到docker 容器的PID:
docker1Pid=$(docker inspect –-format=’{{.State.Pid}}’
docker1)
docker2Pid=$(docker inspect –-format=’{{.State.Pid}}’
docker2)
再将docker 容器的net namespace 链接到/var/run/netns/:
mkdir /var/run/netns #如果没有该目录,先创建。
ln –s /proc/$docker1Pid/ns/net /var/run/netns/docker1ns
ln –s / proc/$docker1Pid/ns/net /var/run/netns/docker2ns
现在,就可以查看一下这两个net namespace 中的连接情况:
ip netns exec docker1ns
您可能关注的文档
- 2017年秋人教版八年级上册历史课件:24.ppt
- 2017年注册暖通专业考试专业知识上午试题.pdf
- 2017年秋新人教版部编版八上历史第四单元新时代的曙光复习之基础知识巩固.ppt
- 2017年贵州土地管理基础与法规:耕地补偿制度模拟试题.pdf
- 2017年辽宁省房地产估价师《理论与方法》:房地产基本状况描述考试题.pdf
- 2017年辽宁省土地估价师《管理基础与法规》:刑事赔偿考试试题.pdf
- 2017年长沙医学院护理学专业认证试点申请表.doc
- 2017年高考全国ⅲ卷文数试题(解析版).pdf
- 2017年高考政治人教版一轮复习课件题型方法20.ppt
- 2017年高考政治人教版一轮复习课件题型方法25.ppt
- 医疗设备研究报告医疗设备产业规划专项研究报告(2024年).pptx
- 减湿器研究预测报告-中国减湿器产业园区发展规划及招商引资咨询预测报告(2024-2028年).pptx
- 集成电路制造研究报告-中国集成电路制造行业竞争分析及发展前景预测报告(2023年).pptx
- 高岭土研究预测报告-高岭土行业深度分析及投资战略研究咨询预测报告(2024-2028年).pptx
- 智慧物业研究报告-中国智慧物业行业竞争格局与未来投资战略分析报告(2020-2023年).pptx
- 复原乳研究预测报告-复原乳市场发展现状调查及供需格局分析预测报告(2024-2028年).pptx
- 液晶面板研究报告-液晶面板市场投资前景分析及供需格局研究预测报告(2024年).pptx
- 连锁超市研究预测报告-连锁超市行业深度分析及投资战略研究咨询预测报告(2024-2028年).pptx
- 交通车辆研究报告-中国交通车辆市场深度调查研究报告.pptx
- 轻便摩托车研究报告-轻便摩托车产业规划专项研究报告(2024年.pptx
1亿VIP精品文档
相关文档
最近下载
- 脉冲电路中电阻功率的计算.pdf
- 有限空间作业管理制范本.pdf
- QC七大手法试题附答案.doc VIP
- GB∕T 33881-2017 罐车用铝合金板、带材.pdf
- 2024云南红河州个旧市城市发展集团限公司招聘工作人员2人高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- EPC项目质量管理要点.pdf VIP
- 冀教版(三起)英语三年级下册Unit 4 Food and restaurants Lesson 19 I Like Fruit课件.pptx
- 《美术鉴赏》学业水平考试复习资料.docx VIP
- 体育与健康《田径--投掷》大单元教学计划(18课时).docx
- 小学五年级信息技术《设计环保标志——word插入形状,并在形状中填充图片》说课课件.pptx
文档评论(0)