One - One Code All

Blog Content

虚拟机与docker容器区别

Linux-Mac 容器化 运维   2014-04-05 15:17:05

虚拟化技术通过Hypervisor(虚拟机管理系统)为每个app启动一个Guest OS(客户机操作系统),也就是为每个app启动一个虚拟机。比较直观地说,vm通过Hypervisor对硬件资源进行虚拟化,而docker直接使用硬件资源,利用率上来看docker明显更具有优势。

容器隔离的粒度更加小一点,而且多个容器之间是共用同一套操作系统资源的。

虚拟机会将虚拟硬件、内核(即操作系统)以及用户空间打包在新虚拟机当中。

与提供硬件虚拟化机制的虚拟机不同,容器通过对“用户空间”的抽象化处理提供操作系统层级的虚拟化机制。通过对容器进行分解,大家将可以非常清晰地理解其中含义。

出于各种考量与需求,容器在外观上与虚拟机非常相似。举例来说,二者皆拥有专有处理空间、能够作为root执行命令、提供专有网络接口与IP地址、允许定制化路由及iptable规则,且可启动文件系统等等。

容器与虚拟机间的最大区别在于,各容器系统共享主机系统的内核。

容器对用户空间进行打包,而不像虚拟机那样同样对内核或者虚拟硬件进行打包。每套容器都拥有自己的隔离化用户空间,从而使得多套容器能够运行在同一主机系统之上。我们可以看到全部操作系统层级的架构都可实现跨容器共享。惟一需要独立构建的就是二进制文件与库。正因为如此,容器才拥有极为出色的轻量化特性。



上一篇:Golang编码规范
下一篇:np.argsort()查找dataframe第一大第二大排序的元素topN

The minute you think of giving up, think of the reason why you held on so long.