我到处都能看到 Docker 与虚拟机有何不同,但没有任何地方可以回答基本操作系统容器与虚拟机有何不同。
如果我们考虑基础知识,看起来两者是相同的,即操作系统在操作系统内运行。
有人能解释一下根本的区别吗?
最佳答案
虚拟机
虚拟机使用hardware virtualization 。原始硬件和虚拟硬件之间有一个附加层,虚拟机认为它是真实的。
此模型不会重新利用主机操作系统中的任何内容。这样,您就可以在 Linux 主机上运行 Windows VM,反之亦然。
系统容器
系统容器使用operating-system-level virtualization 。它重新利用主机操作系统的主机内核,并将真实硬件直接分割为容器。没有额外的层来访问真实的硬件,因此,开销(或性能损失)几乎为零。
另一方面,您无法在 Linux 主机操作系统中运行 Windows 容器,因为内核不同。
关于operating-system - 操作系统容器与虚拟机有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46191030/