Windows中的docker是否需要启用Hyper-V?

时间:2018-09-30 05:00:19

标签: docker

Docker是否需要在Windows中启用 Hyper-V ?如果是,为什么?

在这种情况下 Hyper-V 的作用是什么?

我正在使用Windows 10家庭版。 hyper-V安装Docker pls的替代方法是什么?

1 个答案:

答案 0 :(得分:3)

如果您使用Windows10 Professional,并且您的BIOS支持硬件虚拟化,建议您启用Hyper-V。

实际上,当在Windows10中运行linux容器时,它仍然需要linux系统作为docker主机,因为linux容器无法与Windows共享内核。

如果启用hyper-v,则docker-windows将在hyper-v中自动将MobyLinuxVm设置为虚拟机,并充当docker的主机。与传统解决方案相比,我的意思是在virtualbox中安装一个linux。 Hyper-v具有更好的性能,因为它不依赖于Windows操作系统,就像基于vmware-esx的基于硬件的安装程序一样。

最后,如果您使用Windows10的家庭版,则必须安装一个虚拟机作为docker的主机,并使用docker工具箱,有关旧式桌面解决方案的详细信息,请参阅https://docs.docker.com/toolbox/overview/

更新一些您可能想知道的要点:

a)Linux容器:

Docker容器必须与主机共享内核,Windows上没有Linux内核,因此在所有情况下,您都必须有一台以linux作为docker主机的虚拟机,如果不支持hyper-v,则为hyper-v或virtualbox

b)Windows容器:

从理论上讲,Windows容器可以共享Windows内核,因此不需要虚拟机。

但是Microsoft支持容器与linux相比还为时过晚,因此对于不同的主机,它使用不同的解决方案,请参阅microsoft web site的下一章:

  

Windows容器包含两种不同的容器类型或运行时。

     

Windows Server容器 –通过进程和名称空间隔离技术提供应用程序隔离。 Windows Server容器与容器主机以及主机上运行的所有容器共享一个内核。这些容器不提供敌对的安全边界,不应用于隔离不受信任的代码。由于共享的内核空间,这些容器需要相同的内核版本和配置。

     

Hyper-V隔离 –通过在高度优化的虚拟机中运行每个容器来扩展Windows Server容器提供的隔离。在这种配置中,容器主机的内核不与同一主机上的其他容器共享。这些容器设计用于具有虚拟机相同安全性保证的恶意多租户托管。由于这些容器不与主机或主机上的其他容器共享内核,因此它们可以运行具有不同版本和配置的内核(受支持的版本)-例如,Windows 10上的所有Windows容器都使用Hyper-V隔离来利用内核。 Windows Server内核版本和配置。