浅谈Docker和VMS的差异

学习Docker之前有必要了解虚拟机和容器的差异,看很多人把容器用成了虚拟机,构建了臃肿且体积大的容器,Docker本身就是轻量级服务,正是因为Docker的特性,适用于分布式场景,也就是K8S作为微服务架构的主流方向。

VMS 利用KVM等虚拟化技术来模拟 CPU、内存等硬件资源,这样就可以在宿主机上新建一个虚拟机。每一个 虚拟机都有一个独立的内核,比如 Ubuntu、CentOS 甚至是 Windows 等,在这样的虚拟机之下,每个应用都是相互独立的,VMS 可以提供一个更好的隔离效果。但这样的隔离效果需要付出一定的代价,因为需要把一部分的计算资源交给虚拟化,这样就很难充分利用现有的计算资源,并且每个虚拟机都需要占用大量的磁盘空间,比如 Windows 操作系统的安装需要 40~60G 的磁盘空间,Ubuntu 也需要 10~20G,同时这样的方式启动很慢。正是因为虚拟机技术的缺点,催生出了容器技术。 容器是针对于进程而言的,因此无需虚拟机,只需要一个独立的文件系统提供其所需要文件集合即可。所有的文件隔离都是进程级别的,因此启动时间快于 虚拟机,并且所需的磁盘空间也小于虚拟机。当然,进程级别的隔离并没有想象中的那么好,隔离效果相比 VMS 要差很多。

上一篇
下一篇