什么是Docker?
是一个开源的容器引擎,可以方便对容器进行管理
是基于容器的轻量虚拟化技术,基于内核的Cgroup和Namespace技术,并没有传统虚拟化的Hypervisor层,
通信上,Docker并不直接与内核交互,而是通过Libcontainer(真正意义上的容器引擎)来交互
通过clone系统调用来直接创建容器,通过 pivot_root 系统调用来进入容器, 通过直接操作cgroupfs文件来实现对资源的管控
优点:(Docker对 Union mount的应用)
1) 性能与物理机十分接近
2) 极大提高磁盘利用率(对层级镜像的创新应用)
即不同的容器共享底层的只读镜像,通过写入自己特有的内容后添加新的镜像层,该新增的镜像层和下层的只读镜像一起
作为基础镜像被更上层的用户使用;
3) 提高内存使用率
不同的容器访问同一个文件时,只会占用一份内存(需要使用支持 Union mount 的文件系统,比如 AUFS 和 Overlay)