设为首页 收藏本站
查看: 1205|回复: 1

[经验分享] docker基础理论知识

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-31 10:11:40 | 显示全部楼层 |阅读模式
Docker实现的两个基本理论知识
一、NameSpace:内核的实现技术,隔离机制。
●PID NameSpace:(隔离pid)每一个用户空间都有一个唯一的PID号,彼此之间不会干扰。从Linux2.6.24内核版本开始引入的,是一种最新的技术。
●Network NameSpace:真正起源于Linux2.6.29,实现与网络用户隔离的。(网络设备、网络线、端口资源隔离)

●User NameSpace:实现用户和用户组资源隔离的。Linux3.8
●IPC NameSpace: 进程间通信机制。多个用户之间的通信(信号量、消息队列和共享内存)也是隔离的。Linux 2.6.19
●UTC NameSpace: Linux 2.6.19 主机名和域名的隔离。
●Mount NameSpace: 实现挂载文件系统隔离的。Linux2.4.19

实现容器技术所需的API:

clone()克隆是实现线程的系统调用。
sents() 实现某个进程加入到某个NameSpace的。
unshare()非共享机制。进程脱离某个NameSpace。

二、CGroup: Linux Control Group  Linux2.6.24被收入到内核中去的。
内核级别,限制、控制与一个进程组群的资源;NameSpace实现上述6种隔离,CGroup实现在每个用户空间配配比资源。如每个用户空间之间的CPU个数,内存大小,以及硬件网络IO等

资源限制:CPU,内存,IO
功能:
      Resouce limitation:资源限制;
      Prioritization:优先级控制;
      Accounting:审计和统计,主要为计费;
      Control:挂起进程,恢复进程;

yum install libcgroup-tools
lssbusys -m
1
2
3
4
5
6
7
8
9
10
[iyunv@docker-vm ~]# lssubsys  -m
cpuset /sys/fs/cgroup/cpuset
cpu,cpuacct /sys/fs/cgroup/cpu,cpuacct
memory /sys/fs/cgroup/memory
devices /sys/fs/cgroup/devices
freezer /sys/fs/cgroup/freezer
net_cls /sys/fs/cgroup/net_cls
blkio /sys/fs/cgroup/blkio
perf_event /sys/fs/cgroup/perf_event
hugetlb /sys/fs/cgroup/hugetlb



CGroup的子系统(subsystem):
blkio:设定块设备的IO限制;(主要是磁盘)
cpu:     设定CPU的限制;
cpuacct: 报告cgroup中所使用的CPU资源;
cpuset:为cgroup中的任务分配CPU和内存资源;
memory:设定内存的使用限制;
device:控制cgroup中的任务对设备的访问;
freezer:挂起或恢复cgroup中的任务;
net_cls:(classid),使用等级级别标识符来标记网络数据包,以实现基于tc完成对不同的cgroup中产生的流量控制;
perf_event:使用后使cgroup中的任务可以进行统一的性能测试;
hugetlb:对HugeTLB系统进行限制;

CGroups中的术语:
task(任务):进程或线程
cgroup:一个独立的资源控制单位,可以包含一个或多个子系统;
subsystem:子系统
hierarchy:层级

三、AUFS: UnionFS 联合文件系统
       UnioFS:把不同的物理位置的目录合并到同一个目录中。实现机制是叠加。类似于winpe,LVM
       Another UFS.Alternative UFS,Adanced UFS (一个日本人写的)但是没有进入Linux内核中。
       Docker是基于AUFS上的,在生产环境中没有AUFS的Docker是不建议使用的。centos不支持AUFS.

Device mapper: 类似于AUFS
       Linux2.6内核引入的最重要的技术之一,用于在内核中支持逻辑卷管理的通用设备映射机制;
      Mapped Device
      Mapping Table
      Target Device
不建议在生产环境中应用。

Docker:
2013,GO  Apache 2.0,dotCloud
基于C/S架构
DockerClinet



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-293720-1-1.html 上篇帖子: 如何安装最新版Docker 下篇帖子: CentOS6系列docker安装遇到的问题与解决 知识
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表