我可以看到的任何地方都是Docker与虚拟机的不同之处,但对于基本操作系统容器与虚拟机的不同之处却无处可寻。
如果我们考虑基础知识,看起来两者都是相同的,即操作系统在操作系统中运行。
有人会解释潜在的差异吗?
答案 0 :(得分:2)
虚拟机
虚拟机使用hardware virtualization。原始硬件和虚拟硬件之间还有一个额外的层,虚拟机认为它是真实的。
此模型不会从主机的操作系统中重复使用任何内容。这样,您就可以在Linux主机上运行Windows VM,反之亦然。
系统容器
系统容器使用operating-system-level virtualization。它从主机OS重新利用主机内核,并将真实硬件直接细分到容器。没有额外的层来访问真实硬件,因此,开销(或性能损失)实际上为零。
另一方面,您无法在Linux主机操作系统内运行Windows容器,因为内核不一样。