Hyper-V 容器是否位于 Docker 容器和虚拟机之间?

Hyper-V 容器是否位于 Docker 容器和虚拟机之间?

我们知道虚拟机拥有一个完整的操作系统,安装了自己的内存管理功能,并承担了虚拟设备驱动程序的相关开销。在虚拟机中,为客户操作系统和虚拟机管理程序模拟了宝贵的资源,这使得可以在一台机器(或主机)上并行运行一个或多个操作系统的多个实例。每个客户操作系统都作为主机系统的独立实体运行。

我们知道Docker 容器使用 runC(以前称为 libcontainer),它运行在与主机相同的操作系统中。这使它能够共享大量主机操作系统资源。此外,它使用分层文件系统 (AuFS) 并管理网络。

我们知道Hyper-V通过分区实现虚拟机隔离。分区是虚拟机管理程序支持的逻辑隔离单元,每个客户操作系统都在其中执行。虚拟机管理程序实例中必须至少有一个父分区,运行受支持的 Windows Server 版本(2008 及更高版本)。虚拟化软件在父分区中运行,可以直接访问硬件设备。父分区创建托管客户操作系统的子分区。父分区使用 hypercall API(Hyper-V 公开的应用程序编程接口)创建子分区。[9]

在此 serverfault 评论中我们

Hyper-V 容器介于虚拟机和容器之间,它运行所选操作系统内核的小型副本,因此其行为方式与虚拟机类似,这就是实现联网的原因。在 Windows 方面,它基本上与运行 Hyper-V VM 的任何其他主机一样,其中运行 Linux。

我的问题是:Hyper-V 容器是否位于 Docker 容器和虚拟机之间?

相关内容