Docker虚拟机 的对比分析

虚拟机和docker都是我们经常使用的工具,而两者在实现功能以及效率上的对比分析之前并未进行,而且,随着docker发展至今,为什么虚拟机还是不可或缺,我将用这篇文章对其进行简单的分析。


核心区别

是否需要安装操作系统?
对于虚拟机来说,需要安装Guest OS 才能去执行应用程序(最直观的体会来说,我们使用VMWARE或者是PD 都需要下载对应的OS文件)但是docker是在OS内的核心系统层打造自己的虚拟执行环境(类比于寄生虫)所以在docker我们称共享宿主机OS的做法,一种操作系统的虚拟化技术。

VM瞄准的是OS层,去建立一个可以正常执行的新的OS环境,而docker是把应用程序需要的代码,库,环境配置文件等都打包来建立运行环境。

我们知道,在配置虚拟机时,我们还需要为其制定内存空间,这也反映了虚拟机的另一特点:对硬件资源的良好划分并且需要Hypervisor层来对资源实现彻底的隔离,相比之下,docker容器技术,是基于OS级别的虚拟化。

优缺点比较

下面我将从几个特性来对两者进行具体的比较

磁盘空间使用:docker根据镜像层决定,一般很小几十KB,而虚拟机一般GB单位
性能(相比于宿主机):docker依附宿主机所以性能接近,但是虚拟机比原主机差
资源利用率:docker资源理由率高,虚拟机低
隔离性:两者都是安全隔离
运行状态:docker直接在宿主机内核上运行,而虚拟机运行在隔离层Hypervisior
并发:docker可起到上千个容器,而虚拟机相对厚重,最多启动几十个
运行速度:docker优于虚拟机

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐