在Azure虚拟机上安装Docker(Windows 10版)

20

我在Azure虚拟机安装docker时遇到了错误。

这里输入图片描述

机器配置: Azure VM,Windows 10企业版,Intel 2.4 GHz,7 GB RAM,64位操作系统,基于x64的处理器。我看了一些博客,它们要求我在Azure VM上启用嵌套虚拟化。

Set-VMProcessor -VMName MobyLinuxVM -ExposeVirtualizationExtensions $true

但是这也没有帮助,虚拟机MobyLinuxVM无法启动。我已经从Windows功能中安装了Hyper-V和Container组件。但是错误显示“因为Hyper-V组件之一未运行”,而Hyper-V的所有组件都在运行。我检查了任务管理器性能选项卡,但没有看到虚拟化选项。由于我正在Azure VM上安装docker,因此无法修改BIOS中的虚拟化设置。我尝试禁用Windows防火墙,但也没有帮助。那么怎么在Azure虚拟机Windows 10企业版上运行docker呢?


您可以在Azure Windows 10企业版上安装Docker。请确保首先启用Hyper-V。虚拟化可在DV3和EV3 VM上使用。请参考https://azure.microsoft.com/en-us/blog/nested-virtualization-in-azure/。 - Shui shengbao
我在实验室进行测试,它在我的Windows 10虚拟机上运行良好,其SKU为“标准 D2 v3”。 - Shui shengbao
4个回答

19
如果你在安装了Docker的Azure Windows 10 VM上遇到了这个错误,那么这里有一个解决方案:
  1. 运行PowerShell命令来确保Windows Hyper-V功能已启用:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -Verbose

  1. 运行PowerShell命令来确保Windows容器功能已启用:

Enable-WindowsOptionalFeature -Online -FeatureName Containers -All -Verbose

  1. 管理员权限运行以下命令,确保Hypervisor在引导配置数据库(BCD)中设置为自动启动:

bcdedit /set hypervisorlaunchtype Auto

运行完以上所有步骤并且重新启动Azure VM后,Docker应该可以正常启动了。


1
Docker 会默认尝试使用 WSL 启动,但可能在启动时显示崩溃屏幕。这时会有一个提示用于切换后端。只需关闭崩溃消息窗口并在提示时选择 "Use Hyper-V" 即可。Docker 将重新启动且不会出现任何问题。 - rinesh

13

Azure目前尚不支持嵌套虚拟化。
您需要使用DSv3或E3实例来实现这一点。只需像平常一样使用Docker即可。


1
使用标准的D2s v3进行测试(2个vCPU,8 GB内存),创建虚拟机并安装Windows版Docker,当提示激活Hyper-V时,选择是并重新启动。一切正常。 - Cedric Dumont
1
好的,写作时dsv3不可用,所以... @CedricDumont - 4c74356b41
1
我在D2s_v3上遇到了同样的问题。我并不指望它能正常工作,但当我将它改成D4s_v3时,Docker成功启动了。 - Micah B.
切换从 D2s_v3 到 D4s_v3 对我也起作用了。谢谢! - Miles

3

微软提供预安装Docker企业版的映像文件。即使在B2s虚拟机上也可以使用。只需在创建虚拟机时选择任何一个“Microsoft Server 2019/2016 Datacenter with containers”映像文件。


0
如上所述,请使用DSv3或E3实例。如果对您不起作用,请在创建Azure虚拟机时检查安全类型。现在是“受信任的启动虚拟机”,请切换回标准模式,并按照通常的方式安装Docker。应该可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接