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. IDEA中统计项目代码的总行数

    方法    安装“Statistic”插件步骤    打开idea设置界面,选择 plugins标签   点击下面“Browse repositories”按扭,浏览插件仓库   搜索“Statist ...

  2. JUC 一 FutureTask

    java.util.concurrent public class FutureTask<V> implements RunnableFuture<V> 简介 FutureTa ...

  3. px2rem-loader(Vue:将px转化为rem,适配移动端)

    转载:https://www.cnblogs.com/WQLong/p/7798822.html 1.下载lib-flexible 使用的是vue-cli+webpack,通过npm来安装的 npm ...

  4. 数据结构C++版-线性表

    PS:资料来源慕课网视频. 一.什么是线性表 线性表是n个数据元素的有限序列. 分类: 二.补充知识点 1.栈和队列有出操作.入操作,对应线性表(数组)为插入元素和删除元素,而线性表中要获取指定元素值 ...

  5. sudo apt-get update:Could not get lock /var/lib/apt/lists/lock解决办法

    原文: http://blog.chinaunix.net/uid-26932153-id-3193335.html 今天更新时候出现了点小问题,一开始更新到一半,我嫌速度慢,就取消掉了. 更新了so ...

  6. Ubuntu下安装fcitx+搜狗输入法

    转载自:http://www.linuxidc.com/Linux/2013-07/87062.htm 目标:在Ubuntu 13.04以及基于Ubuntu的发行版上安装fcitx小企鹅输入法,并安装 ...

  7. java-day15

    File类 文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作 静态成员 static String pathSeparator 路径分隔符 File.pathSeparator ...

  8. [JSOI2019]精准预测

    题目 这么明显的限制条件显然是\(\text{2-sat}\) 考虑按照时间拆点,\((0/1,x,t)\)表示\(x\)个人在时间\(t\)是生/死 有一些显然的连边 \[(0,x,t+1)-> ...

  9. jdbc加载驱动方法

    1.Class.forName("com.mysql.jdbc.Driver"); 2. DriverManager.registerDriver(new com.mysql.jd ...

  10. git mac安装

    1.git安装包安装 去官网下载最行的git版本 安装即可 https://git-scm.com/download/mac 但是一般的git仓库需要sshkey来做验证 下面奉上具体的命令: 需要生 ...