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

Kar*_*hik 3 docker

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

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

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

atl*_*ine 7

如果您使用的是 windows10 专业版并且您的 bios 支持硬件虚拟化,建议您启用 Hyper-V。

在windows10中运行linux容器,其实还是需要一个linux系统作为docker主机,因为linux容器不能和windows共享内核。

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

最后,如果你使用windows10的家庭版,你必须安装一个virtualbox作为docker的主机并使用docker toolbox,详细信息参考https://docs.docker.com/toolbox/overview/遗留桌面解决方案。

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

a) linux 容器:

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

b) 窗口容器:

理论上windows容器可以共享windows内核,不需要虚拟机。

但是微软对容器的支持比起linux来的晚,所以对于不同的主机,它使用不同的解决方案,参见微软网站的下一章:

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

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

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