03-初识Docker-Docker和虚拟机的差别
1.Docker与虚拟机
虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。
解释:
我们知道,Docker他可以实现一个应用在不同的Linux操作系统上去运行和部署,而我们虚拟机也可以达到类似的效果。这两个的实现有什么差别呢?
Docker的实现原理:他会把我们的应用及其所需要的依赖、函数库、甚至于操作系统函数库也一起打包,这样一来,当系统运行时可以直接调用本地函数库,而后与操作系统内核进行交互,这样就不再关心操作系统是什么系统了,于是就能实现跨系统的一种运行。
虚拟机是怎么实现在一个系统里装另一个系统呢?
其实会用到一种名为Hypervisor的技术,这种技术可以模拟出一个计算机的各种各样的硬件,比如CPU,内存等等。然后在这个模拟出的计算机上,你就可以去安装任意你想要的操作系统了,那既然操作系统都能重装,那我们是不是就可以在他上面去安装任意适合的依赖、函数库、以及应用。这样就实现了跨系统的应用部署了。我们的虚拟机是一个系统里装了另外一个系统,所以当应用执行的时候,他会以为自己在一台真实的电脑上,因此他会先去调用这个内置的操作系统,而它再与我们的Hypervisor进行交互,然后再把信息传递给我们的web操作系统,web操作系统再去调用我们的计算机硬件,我们的应用执行就完成了。虚拟机经过了层层的传递,所以性能相对来讲比较差一点。而我们的Docker,Docker的应用在执行的时候是直接调用我们操作系统内核,所以Docker的执行性能会比虚拟机的性能好很多。除了性能以外还有一些其他的差异。
特性 | Docker | 虚拟机 |
---|---|---|
性能 | 接近原生 | 性能较差 |
硬盘占用 | 一般为 MB | 一般为GB |
启动 | 秒级 | 分钟级 |
2.总结:
1.Docker和虚拟机的差异:
1.docker是一个系统进程;虚拟机是在操作系统中的操作系统
2.docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般