Linux Namespace详解



namespace:是一个空间,空间里可以放进程,文件系统,账号,网络等,某个资源被放到namespace之后

别人就看不到他了。

可以看到有两个namespace下两个相同名字的进程0,并不冲突,每个namespace是独立的隔离的,相当于一个linux系统

容器就相当于一个namespace,集成网络,文件等资源。



点对点模式



veth pair是用于不同network namespace间 进行通信的方式,veth pair将一个network namespace数据发往另一个network namespace的veth。

交换机模式



Linux Bridge可以实现类似交换机的工作模式, 将多个不同Namespace上的网卡连通

linuxbrige只是mac地址交换,linux Brige有ip地址,所以可以做路由转发。

举例



默认情况下,创建一个docker容器,会自动创建一个docker0的网桥,可以看到interface 是没有的,说明bridge是空的没有挂载端口,当你启动一个容器后,bridge就会出现一个端口。

每建立一个容器就会出现一个veth pair对,veth pair一端挂载在docker0上,一端挂载在容器的网卡上

docker中的namespace和pid是一样的,进程的编号就是namespace名称,这里的进程指的是containner本身的pid,不是containert里面应用的pid。



OVS+Docker







上图是不容网段的,相同网段的可以通过二层,不同网段的必须通过交换机,

安装ovs

vi /etc/selinux/config SELINUX=disabled

重启

yum install openvswitch-2.4.0-1.x86_64.rpm

[root@docker128 ~]# service openvswitch restart Restarting openvswitch (via systemctl):[ OK ]

[root@docker128 ~]# service openvswitch status

ovsdb-server is running with pid 2429

ovs-vswitchd is running with pid 2439









说明了,gre是在物理网络上进行传播的,并不是在brg里面,只是在物理网络里面进行了二次封装,所以走的还是eth0.

Docker系列(六):Docker网络机制(下)的更多相关文章

  1. Docker系列04—Docker的网络模式详解

    本文收录在容器技术学习系列文章总目录 1.Docker的四种网络模式 (1)docker四种网络模式如下: Bridge contauner   桥接式网络模式 Host(open) containe ...

  2. Docker系列02—Docker 网络模式

    一.Docker的四种网络模式 1.Docker 的四种网络模式: Bridge container 桥接式网络模式 Host(open) container 开放式网络模式 Container(jo ...

  3. Docker 系列六(Docker Swarm 项目).

    一.前言 随着互联网快速发展,以及微服务架构的流行,服务器的压力越来越大.上一篇介绍的 Docker Compose 项目,可以将多个容器捏合在一起,实现容器间的通信,比如 Web 项目对 DB.Ca ...

  4. Docker系列六: 使用Docker官方公共仓库和私有仓库

    使用公共仓库 登陆官方网站:https://hub.docker.com/   注册账号和密码 在Docker hub中创建一个资源,  create  respositories,   创建后会提示 ...

  5. Docker系列03—Docker 基础入门

    本文收录在容器技术学习系列文章总目录 1.概念介绍 1.1 容器 1.1.1 介绍 容纳其它物品的工具,可以部分或完全封闭,被用于容纳.储存.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. ...

  6. Docker系列05—Docker 存储卷详解

    本文收录在容器技术学习系列文章总目录 1.存储卷介绍 1.1 背景 (1)docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加面成,启动容器时,docker会加载只读镜像层并在镜 ...

  7. Docker系列01—Docker 基础入门

    一.初识Docker和容器 1.1 什么是docker 容纳其他物品的工具,可以部分或完全封闭,被用于容纳.存储.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. 容器? 容器就是在隔离的环 ...

  8. docker 系列之 docker安装

    Docker支持以下的CentOS版本 CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker. ...

  9. Docker系列一: docker简介及基本环境安装

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

  10. Docker系列03—Docker 存储卷

    一.存储卷介绍 1.1 背景 Docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加而成,启动容器时,docker会加载只读镜像层并在镜像栈顶部加一个读写层: 如果运行的容器修改了 ...

随机推荐

  1. MYSQL查询第二高的薪水

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) . +----+--------+| Id | Salary |+----+--------+| 1 | 100 || ...

  2. jQuery - 动画相关

    // 显示隐藏 $("div").show(); // 显示 $("div").hide(); // 隐藏 // 显示过程3秒, 3秒之内, 元素的宽,高和透明 ...

  3. Go 算术运算符

    Go 算术运算符 package main import "fmt" func main() { var a int = 21 var b int = 10 var c int c ...

  4. 关于ThreadLocal的一道面试题(酷我公司)

    2013年8月,本人那时候刚毕业来到了北京找工作,在网上投递了各种简历,也面试了很多家公司,遇到最大的问题就是:你什么时候毕业的呀?,做过什么项目呀?都将我拒之门外,但是我还是幸运总会来的,那天早上9 ...

  5. 图片转换为base64

    明天中秋了,先祝大家中秋快乐!哈哈,最近见有人在群里问怎么把图片转换成base64格式,之前刚好写过就把代码贴出来. 主要用到canvas中的toDataURL方法 <!DOCTYPE html ...

  6. hive的数据压缩

    hive的数据压缩 在实际工作当中,hive当中处理的数据,一般都需要经过压缩,前期我们在学习hadoop的时候,已经配置过hadoop的压缩,我们这里的hive也是一样的可以使用压缩来节省我们的MR ...

  7. NX二次开发-UFUN获得图纸页数量UF_DRAW_ask_num_drawings

    #include <uf.h> #include <uf_draw.h> #include <uf_ui.h> UF_initialize(); //获得有多少张图 ...

  8. 数据结构C++版-树

    一.概念 树是节点的有限集合. 二叉树: 二.补充知识点 1.<二叉树编码实战二>课程笔记: 递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己. 迭代:利用变量的原值推算 ...

  9. icmp隧道--icmpsh

    本地:ubantu 目标主机:windows 在ubantu上关闭自带的icmp回应 sysctl -w net.ipv4.icmp_echo_ighore_all=1 ubantu上启动 pip i ...

  10. 《DSP using MATLAB》Problem 8.44

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...