当前位置: 代码网 > 服务器>服务器>云虚拟主机 > Docker和虚拟机的区别及说明

Docker和虚拟机的区别及说明

2024年11月26日 云虚拟主机 我要评论
docker可以让一个应用在任何操作系统中非常方便的运行。而以前我们接触的虚拟机,也能在一个操作系统中,运行另外一个操作系统,保护系统中的任何应用。两者有什么差异呢?doker的实现原理docker把

docker可以让一个应用在任何操作系统中非常方便的运行。而以前我们接触的虚拟机,也能在一个操作系统中,运行另外一个操作系统,保护系统中的任何应用。

两者有什么差异呢?

doker的实现原理

docker把应用及其所需要的依赖、函数库、甚至操作系统函数库也一起打包,那这样一来,应用直接运行时,可以直接调用本地函数库,然后与linux内核进行交互,这样它就不再关心操作系统是什么系统了,于是就能实现跨系统的一种运行了。

虚拟机(virtual machine)

用到了一种名为hypervisor的技术,这种技术可以在操作系统中模拟一个计算机的各种各样的硬件设备(比如cpu、内存等等),然后在这个模拟出的计算机上运行另一个操作系统,比如在 windows 系统里面运行 ubuntu 系统,这样就可以运行任意的ubuntu应用了。

既然操作系统都能重新安装,那我们就可以在它上边去安装任意适合的依赖、函数库、以及应用,这样也实现了跨系统的应用部署。

image-20210731145914960

对比来看

我们的虚拟机它是在一个系统里装了另外的一个系统,所以当应用执行时它会以为自己在一台真实的电脑上,因此它会去调用这个内置的操作系统,然后它再与hypervisor进行交互,然后再把信息传递给了我们的web操作系统,web操作系统再去调用计算机硬件,于是我们的应用执行就完成了,此时它经过了层层的传递,所以它的性能相对来讲是比较差一点的。

docker应用在执行时,是直接调用操作系统内核的,所以它的执行性能要比虚拟机的执行性能要好很多。

并且docker仅仅是封装应用程序执行需要的一些简单的函数库和依赖,并没有模拟完整的操作系统,所以体积往往比较小,最小的一个docker容器可能只有几mb,而大一点就是几十mb,几百mb;而虚拟机动不动就要几个g甚至几百g的内存空间,因此体积占用是比较大的。

并且虚拟机启动的时候需要启动虚拟的计算机的操作系统,等于把这个计算机重启了一遍,然后再去启动虚拟操作系统上面的应用。

而docker就是直接在操作系统上把一个进程启动起来了,所以它的启动速度也是非常的快。

总结:docker和虚拟机的差异

  • docker是一个系统进程,因为它是直接与操作系统内核做交互;虚拟机是在操作系统中的操作系统
  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

因此,现在企业做服务部署,基本上都会去选择用docker,而不会选择用虚拟机。

特性docker虚拟机
性能接近原生性能较差
硬盘占用一般为 mb一般为 gb
启动秒级分钟级

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com