Docker与虚拟机的区别(5大核心区别详解)

Docker与虚拟机的区别(5大核心区别详解)-mikechen

虚拟机

虚拟机VM是物理硬件的抽象,它将一台服务器变成很多服务器。

虚拟机管理程序允许多个VM在单台计算机上运行,每个VM均包含操作系统。

Docker与虚拟机的区别(5大核心区别详解)-mikechen

 

Docker

Docker与虚拟机的区别(5大核心区别详解)-mikechen

Docker是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目,它基于 Google 公司推出的 Go 语言实现。

容器是应用程序层的抽象,将代码和依赖项打包在一起,如下图所示:

Docker与虚拟机的区别(5大核心区别详解)-mikechen
多个容器可以在同一台计算机上运行,并与其他容器共享其OS内核,每个容器在用户空间中作为隔离的进程运行。

 

Docker和虚拟机区别

如下图分别是Docker与虚拟机的实现框架对比:

Docker与虚拟机的区别(5大核心区别详解)-mikechen

Docker与虚拟机的区别(5大核心区别详解)-mikechen

比较上面两张图,docker与虚拟机的区别,主要包含如下几点:

1.携带内容不同

虚拟机是携带操作系统,本身很小的应用程序却因为携带了操作系统而变得非常大很笨重。

Docker是不携带操作系统的,所以Docker的应用就非常的轻巧。

 

2.启动速度不同

docker 启动快速属于秒级别,虚拟机通常需要几分钟去启动。

 

3.性能损耗不同

docker 需要的资源更少,docker 在操作系统级别进行虚拟化,docker 容器和内核交互,几乎没有性能损耗。

 

4.系统利用率不同

Docker对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。

传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

 

5.管理部署不同

使用 Docker只需要小小的修改,就可以替代以往大量的更新工作,所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法