Docker架构图
Docker架构图
服务器---主机系统中通过Cgroup和Namespace-----------划分成多个bins/libs---------------每个app运行在独立的bins/libs中-------------每个bins/libs相当于从服务器中划分出的独立的资源,可以理解成为轻量的虚拟化技术
优势:
1.docker不会直接与内核交换,他是通过一个更底层的工具Libcontainer来与内核交互的,Libcontainer是真正意义上的容器引擎,通clone系统调用直接创建容器,通过pivot_root系统调用进入容器,且通过直接操作cgroups文件实现对资源的管控,而docker本身则侧重于处理更上层的业务
2.docker是对层级镜像的创新应用,即不同的容器可以共享底层的只读镜像,通过写入自己特有的内容后添加新的镜像层,新增的镜像层和下层的镜像一起又可以作为基础镜像被更上层的镜像使用。这种特性可以极大地提高磁盘利用率,所以当你的系统上有10个大小为1G的镜像时,他们总共占用的空间大小可以能只有5GB,甚至更少,另外,docker对union mount的应用还体现在多个容器使用同一个基础镜像时,可及大地减少内存占用等方面,因为不同的容器访问同一个文件时,只会占用一份内存。当然这需要使用支持union mount的文件系统作为存储的,graph driver,比如AUFS和Overlay