Docker 之十三资源隔离与资源限制介绍
虚拟机与容器底层实现的对比
虚拟机与容器的底层实现原理是不同的,正如上图片的对比。虚拟机实现资源隔离的方法是利用一个独立的 Guest OS,并利用 Hypervisor 虚拟化 CPU、内存、IO 设备等实现的。例如,为了虚拟化内存,Hypervisor 会创建一个 shadow page table,正常情况下,一个 page table 可以用来实现从虚拟内存到物理内存的翻译。相比虚拟机实现资源和环境隔离的方案,Docker 就显得简练很多,它不像虚拟机一样重新加载一个操作系统内核,引导、加载操作系统内核是一个比较耗时而又消耗资源的过程,Docker 是利用 Linux 内核特性(LXC)实现的隔离,运行容器的速度几乎等同于直接启动进程。