一、虚拟化
1、主机级别虚拟化(两种)
a、类型一虚拟化:在硬件上直接安装hyper-ver,然后再安装虚拟机
1)、操作系统就两棵树:进程树,文件系统树。
2)、一个内核只能有一个root
b、类型二虚拟化:在宿主机上安装OS,然后再创建虚拟机
2、容器级别虚拟化
二、docker虚拟化原理
1、需要隔离的资源
a、主机名域名:UTS
b、文件系统:Mount
c、CPU频率:IPC
d、PID:PID为1的为root用户
e、User 用户
f、网络 Net
linux内核到今天为止在内核级一共对这六种需要被隔离的资源在内核级已经通过一个名称空间的机制已经被原生支持。(namespace),直接通过系统调用对外输出。
2、docker虚拟化就是通过上面六个namespace加上chroot来实现的。
3、支持docker内核版本
因此要想很好的使用容器技术至少要内核3.8以后才可以。
三、docker资源限制
1、cgroups :把系统级的资源分成多个组,然后把每一个组内的资源量分配到特定的用户进程空间上去。
2、LXC LinuX Container
3、docker 是什么
docker是LXC的增强版,严格意义上来说docker并不是容器,而是容器的易用工具(前端工具)而已,容器是linux内核中的技术。
四、docker构建原理
1、分层构建,联合挂载。
2、每个层都只读,如果要能读写,需要在联合挂载的镜像栈的顶层再添加一个层实现读写。
五、docker 编排
docker容器运行引擎变化:
linuX Container ----> libcontainer ----> runContainer
镜像文件标准:OCF(开放容器格式标准,已经成为了工业 标准)