1、虚拟机:基础设施(云主机、服务器、个人电脑)==》主操作系统(macos windows linux)===》总虚拟管理系统==》应用操作系统(如果有3个不同的应用层,三个会分离每一个都有一个自己的操作系统,这样就会占更多的磁盘空间。)
虚拟机管理系统(Hypervisor)。利用Hypervisor,可以在主操作系统之上运行多个不同的应用操作系统。类型1的Hypervisor有支持MacOS
的HyperKit,支持Windows的Hyper-V以及支持Linux的KVM。类型2的Hypervisor有VirtualBox和VMWare
2、docker容器: 基础设施(同上) ==》主操作系统(同上)==》Docker守护进程(Docker Daemon)
所有主流的linux上都可以运行docker,对于macos、window也有一些方法运行docker。
Docker守护进程取代了Hypervisor,它是运行在操作系统之上的后台进程,负责管理Docker容器。
各种依赖。对于Docker,应用的所有依赖都打包在Docker镜像中,Docker容器是基于Docker镜像创建的
应用。应用的源代码与它的依赖都打包在Docker镜像中,不同的应用需要不同的Docker镜像。不同的应用运行在不同的Docker容器中,它们是相互隔离的。
3、对比虚拟机与Docker
Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。