无法启动虚拟机"MobyLinuxVM",因为其中一个Hyper-V组件未运行

Wil*_*eng 33 vmware-workstation docker windows-server-2016

我在使用Window Server安装Docker时遇到了一些问题.
环境清单:

1 Windows 10(物理机)
2.VMware®WorkstationPlayer(12~以上)URL
3.Windows Server 2016在VM
4.Docker CE for Windows(稳定)URL

问题图片和内容
在此输入图像描述

Unable to start: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: 'MobyLinuxVM' failed to start.

Failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running.

'MobyLinuxVM' failed to start. (Virtual machine ID BBD755F7-05B6-4933-B1E0-F8ACA3D2467B)     

The Virtual Machine Management Service failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running (Virtual machine ID BBD755F7-05B6-4933-B1E0-F8ACA3D2467B).
at Start-MobyLinuxVM, <No file>: line 315
at <ScriptBlock>, <No file>: line 410
   at Docker.Backend.ContainerEngine.Linux.DoStart(Settings settings, String daemonOptions) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Backend\ContainerEngine\Linux.cs:line 256
   at Docker.Backend.ContainerEngine.Linux.Start(Settings settings, String daemonOptions) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Backend\ContainerEngine\Linux.cs:line 130
   at Docker.Core.Pipe.NamedPipeServer.<>c__DisplayClass9_0.<Register>b__0(Object[] parameters) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeServer.cs:line 47
   at Docker.Core.Pipe.NamedPipeServer.RunAction(String action, Object[] parameters) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeServer.cs:line 145
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题呢,谢谢.

小智 31

如果这有助于其他人解决此问题,我发现从管理命令提示符运行这些命令修复了我的Hyper-V问题:

net stop vmms 
net start vmms
Run Code Online (Sandbox Code Playgroud)

然后,我能够毫无问题地启动我的docker容器.

  • Windows位于Virtual Box中时不起作用 (2认同)

Emi*_*mil 19

如果您在已安装Docker的Azure Windows 10 VM上收到此错误,则可以使用以下解决方案:

  • 确保通过运行PowerShell cmdlet启用Windows Hyper-V功能:

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

  • 通过运行PowerShell cmdlet确保启用Windows容器功能:

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

  • 通过在提升的命令提示符下运行命令,确保在引导配置数据库(BCD)中将Hypervisor设置为自动启动:

bcdedit /set hypervisorlaunchtype Auto

运行上述所有内容并重新启动Azure VM后,Docker应该正常启动.

除了上面的答案,用于设置虚拟机设置的PowerShell cmdlet是:

Set-VMProcessor -VMName <Enter-VM-Name> -ExposeVirtualizationExtensions $true -Verbose

  • Docker 似乎仅适用于某些类型的 Azure VM,例如 D*_v3 和 E*_v3。例如,它不适用于 D*_v2。将我的虚拟机大小调整为 D*_v3 后,docker 成功启动。 (2认同)

Wil*_*eng 15

大家好我已经找到了解决这个问题的答案,希望这些内容可以帮助那些有同样问题的人.
1.在虚拟机设置下设置VM(如下图所示) 在此输入图像描述

在此输入图像描述

  1. 在Windows Server 2016中设置Hyper-V(如下图所示) 在此输入图像描述

普通话参考URL


J.W*_*icz 9

在 Azure VM 中启用 Hyper-V 功能是不够的。您必须启用“嵌套虚拟化”,因此根据文档,您应该选择v3大小合适的 VM:

所有 v3 虚拟机都支持嵌套虚拟化

调整大小后,VM 将重新启动,Hyper-V 中的 DockerVM 将运行。


小智 7

这是一个嵌套虚拟化问题,用于修复它运行 VMWare 6.5 和 Windows 10 来宾关闭 VM 并选择将硬件辅助虚拟化暴露给来宾操作系统的选项。

在此处输入图片说明