docker在windows上为啥需要虚拟化。

docker在linux上运行不需要虚拟化,但是,如果在windows上安装运行就需要虚拟化,找到答案了。


Docker 的核心技包括 Linux 上的名字空Namespaces) 、 控制Control groups) 、 Union
件系Union file systems) 和容器格式( Container format) 。
知道, 传统的虚机通在宿主主机中hypervisor 来模一整套完整的硬件境提供机的
操作系。 虚机系看到的境是可限制的, 也是彼此隔离的。 种直接的做法实现对资源最完整的
封装, 但很多候往往意味着系统资源的浪。 例如, 以宿主机和虚机系Linux 统为例, 虚
机中行的用其可以利用宿主机系中的境。
知道, 在操作系中, 包括内核、 文件系、 网PIDUIDIPC、 内存、 硬CPU 等等, 所有
源都是程直接共享的。 要想实现化, 除了要实现对内存、 CPU、 网IO、 硬IO、 存
等的限制外, 实现文件系、 网PIDUIDIPC等等的相互隔离。 前者相容易实现一些, 后
需要宿主机系的深入支持。
随着 Linux 统对于名字空功能的完善实现, 程序可以实现上面的所有需求, 某些程在彼此
隔离的名字空行。 大家然都共用一个内核和某些时环境( 例如一些系命令和系统库) , 但
是彼此却看不到, 都以中只有自己的存在。 种机制就是容器( Container) , 利用名字空来做
限的隔离控制, 利用 cgroups 来做源分配。



你可能感兴趣的:(docker)