白话容器namespace
进入正题之前是例行装X环节:


过年7天吃的,花了45天又回来了。
近年来容器大火,也正是因为容器,生生灭掉了一个IT岗位!哥也是被生生的逼上了邪路。
那究竟什么是容器呢?
就三个字:它就是个进程!(多了算赠送的)
所以以后再有人问你用docker会不会损耗性能什么的,你就跟他说几乎没有或者就是没有!他要问为什么?你咋那么确定?你就告诉他是波哥说的。但是挨打了啥的别怨我就行,反正到时候我不承认。
正常情况下docker极限情况下是5%左右的损耗,虚拟机极限情况大概15%至30%的损耗,咱们是相对于纯物理机来讲的。当然这个不是绝对值,也要取决于我们创建docker的网络和存储方式,别犟奥!再犟打你。相关性能分析以后我会专门做个试验来阐述。
其实为什么敢这么说呢?因为我们只要剖析一下他的底层实现原理就明白了。这个就是我们今天要聊得话题。
容器的如何被封装的隔离的呢?1分钟就能说明白!
尽量不学术奥,要不太XX枯燥,看着都烦!
这句划重点:linux咋创建的进程,就咋创建的docker。
作为系统它不管你是啥,他都用统一的方式进行管理。
举个栗子:
你就是个单身狗:你去婚介找对象,人家就说了为了方便统计信息,我们都是按规定写上六个条件:身份证号,用户名,现住址,存款,电话,家庭成员。
你要想找对象,那么就得按这个格式写上你的信息。婚介有了这个信息后就可以帮你找你合适的人选啦。
这里操作系统就是个婚介所,身份证对应每个进程的PID(进程编号)号(他的孩子叫PPID),用户名对应UTS(主机名和域名),存款对应IPC(信号量,内存等),现住址对应mount(文件系统挂载点),电话对应network(网络设备),家庭成员对应user(用户和用户组)。
具体名词是这样审的:

一个人就是一个进程,每个人有六项信息,同样每个进程会有六项固定信息。
这每一项信息呢,就是咱们所谓的namespace啦。中介如何判断你俩是否有戏呢?也就是说在系统中如何判断两个进程的某项namespace是否相同呢?
看他们的namespace号,就是这样婶的:
PID为1的namespace:

PID为2的namespace:

看到没,他俩后边那个号有个一样的。那么他俩那个选项就是在同一个namespace中。(我不知道奥,瞎说的,实在没时间细细的截图,反正就类似吧)
所以他们既可以namespace都一样,也可以某项在一起,也可以完全不一样。
如果他们的六个空间号都相同呢?那一定是两口子,要是为了家庭和睦呢就不能起争执,所以他们的特点最好就是不一样,也就是不同的应用,比如一个tomcat,一个mysql。这样样他俩不打架!而且沟通还无障碍!
那么如果都不一样呢?
都不一样就互相看不见对方。老死不相往来的那种,谁也不能影响谁。(一个容器跑一个独立应用,这就是一个宿主机跑100个独立容器,但是他们互不干扰的原理,而且他们在自己的容器中都认为自己是老大哦,所以他们的PID都是1)
我们通常会怎么用namespace呢?
通常我们会遇到两个docker需要相互通信,非常简单,那就让他们管网络namespace相同就好了。他们就能互相看见对方啦。具体操作可以看docker-compose里面的相应参数。
总结来说docker就是一个进程,它们的相关信息被切成了6块,分别存放。如果不想让他们认识,那么就用独立的六个盒子装,反向亦可!
超级简单对不对?就酱~
容器确实被切成6块封印起来了。它肯定是不会乱跑了。但是他会乖乖的接受我们的控制嘛?他要是忽然把一个盒子撑爆可咋办?
那么下次我们再聊聊如果限制这些已经被封印的容器!
神奇的cgroup!~
PS:大家可以关注我的公众号获取更多的项目代码和讲解!
波神与你同行哦,加油!!!

白话容器namespace的更多相关文章
- Linux namespace技术应用实践--调用宿主机命令(tcpdump/ip/ps/top)检查docker容器网络、进程状态
背景 最近偶然听了几堂极客时间的云原生免费公开课程,首次接触到了Linux namespace技术,并了解到这正是现在风头正劲的容器技术基石,引起了自己探究一二的兴趣,结合课程+网络搜索+实践操作,也 ...
- 【Networking】容器网络大观 && SDN 资料汇总
SDNLAB技术分享(十五):容器网络大观 SDNLAB君• 16-06-17 •2957 人围观 编者按:本文系SDNLAB技术分享系列,本次分享来自SDN撕X群(群主:大猫猫)群直播,我们希望 ...
- Docker底层基石namespace与cgroup
Docker底层基石namespace与cgroup 容器本质上是把系统中为同一个业务目标服务的相关进程合成一组,放在一个叫做namespace的空间中,同一个namespace中的进程能够互相通 ...
- [docker]docker的四种网络方式
声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! bridge方式(默认) H ...
- 深入剖析Kubernetes学习笔记:开篇词(00)
一.关于Kubernetes初学的疑惑 就在这场因"容器"而起的技术变革中,kubernetes项目已经成为容器技术的事实标准,重新定义了基础设置领域对应用编排与管理的种种可能 1 ...
- 写在19年初的后端社招面试经历(两年经验): 蚂蚁 头条 PingCAP
去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.想着可以总结一下经验,分享一下自己这一段"骑驴找马"过 ...
- 深入剖析Kubernetes k8s
深入剖析Kubernetes k8s 毫无疑问,Kubernetes 已经成为容器领域当之无愧的事实标准.除了 Google.Microsoft 等技术巨擘们在容器领域里多年的博弈外,国内的 BAT. ...
- 如何掌握 Kubernetes ?系统学习 k8s 的大纲一份
深度剖析 Kubernetes 深度剖析 k8s 如何学习 Kubernetes ?如何入门 Kubernetes? 为了帮帮初学者,2018 年 InfoQ 旗下(就是你知道的那个 InfoQ 哇) ...
- LXC、LXD、Docker的区别与联系(by quqi99)
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 容器 namespace技术用来进行做进程间的隔 ...
随机推荐
- 谈谈TensorFlow with CPU support or TensorFlow with GPU support(图文详解)
不多说,直接上干货! You must choose one of the following types of TensorFlow to install: TensorFlow with CPU ...
- 论持久战之PHPStorm Xdebug Remote 调试环境搭建(不依赖本地环境)
最近公司自己搭建了一个资源管理平台,哈哈,当然是我在github上找的,后台用PHP开发.个人觉得写得非常nice,web页面几乎模拟了真实OS,有兴趣的朋友下载部署体验https://github. ...
- Cocos从入门到精通--《创建第一个项目:HelloWorld》
上节课我们解说了cocos2-x v3.7版本号的下载安装,也展示了使用CocosStudio编译不同平台运行程序的方法,大家是不是对新版本号的Cocos引擎充满期待?今天我们就创建一个project ...
- 2016/05/11 Thinkphp 3.2.2 验证码 使用 及校验
先新建一个公共控制器,用于放置验证码的实例化代码(不用新建控制器也行,任意公共控制器都可以). 例如:PublicController.class.php 4 5 6 7 8 9 10 11 12 1 ...
- 列表和元组的基本操作,for遍历,range
1,list(增删改查):列表可以装大量数据,不限制数据的类型(int,str,bool, list,tuple,dict,set),表示方法用[ ],list和sttr有区别,list可以直接在原 ...
- 使用JSTL 对在页面上对 0,0,1 的分割处理 forTokens
使用JSTL 对在页面上对 0,0,1 的分割处理 <tr onmouseover="currentcolor=this.style.backgroundColor;this.styl ...
- 如何判断http服务器是否支持range寻址
如果向支持range寻址的http服务器发带range的请求 ,会有什么结果呢?是否有错误返回?数据怎么下载? 诸葛小炎fire | 浏览 569 次 您的回答被采纳后将获得: 系统奖励20(财富 ...
- 并不对劲的p2664树上游戏
题目大意 有一棵\(n\)(\(n\leq10^5\))个点的树,每个点\(i\)有颜色\(c_i\)(\(c_i\leq10^5\)) 定义一条路径的得分为这条路径上的不同颜色个数 分别求每个点的以 ...
- webpack 4.0 相关
Webpack 4.0发布了!! https://www.jianshu.com/p/3a13f1b37300 webpack详解 https://juejin.im/post/5aa3d2056fb ...
- 【黑金教程笔记之004】【建模篇】【Lab 03 消抖模块之一】—笔记
设计思路: (1) 一旦检测到按键资源按下(从高电平到低电平),“电平检测模块”就会拉高H2L_Sig电平,然后拉低. (2) “10ms延迟模块”检测到H2L_Sig高电平, ...