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

Posted

技术标签:

【中文标题】无法启动虚拟机“MobyLinuxVM”,因为其中一个 Hyper-V 组件未运行【英文标题】:Failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running 【发布时间】:2018-06-23 15:55:50 【问题描述】:

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

1 Windows 10(物理机) 2.VMware® Workstation Player(12~以上)URL 3.VM 上的 Windows Server 2016 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

如何解决这个问题,谢谢。

【问题讨论】:

您是否尝试在虚拟机中为 windows 运行 docker? 嗨 @Mathias 在 Windows 上是的 【参考方案1】:

大家好,我找到了解决这个问题的答案,希望这个内容可以帮助遇到同样问题的人。 1.在虚拟机设置中设置虚拟机(如下图)

    在 Windows Server 2016 中设置 Hyper-V(如下图)

普通话参考URL

【讨论】:

我在哪里可以找到第一个屏幕截图中的这些设置? @CharlesMorin 添加了另一张图片,它可以帮助你【参考方案2】:

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

net stop vmms 
net start vmms

然后我可以毫无问题地启动我的 docker 容器。

【讨论】:

我在 azure VM 中运行 Windows 10 Pro,它对我有用。【参考方案3】:

如果您在安装了 Docker 的 Azure Windows 10 VM 上遇到此错误,并且这已经是 Nested Virtualization capable VM 即您的 Azure,这里是一个解决方案 VM 必须至少为 V3 sized(DV3 或 EV3):

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

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

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

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

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

bcdedit /set hypervisorlaunchtype Auto

运行上述所有操作并重新启动 Azure VM 后,Docker 应该可以正常启动。

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

Set-VMProcessor -VMName &lt;Enter-VM-Name&gt; -ExposeVirtualizationExtensions $true -Verbose

仍有问题,尚未重新启动?! - 只需通过运行以下命令重新启动 Windows 服务:

net stop vmms 
net start vmms

【讨论】:

Docker 在某些 Windows 更新后停止工作...感谢您的解决方案,它再次启动并运行 :) 我在 Win 10 Azure VM 中完全按照这些步骤操作,但 docker 仍然显示相同的错误。正在调查... 看起来 Docker 仅适用于某些类型的 Azure VM,例如 D*_v3 和 E*_v3。例如,它不适用于 D*_v2。将我的 VM 调整为 D*_v3 后,docker 启动成功。 是的,确实——第一条规则你的虚拟机必须支持“嵌套虚拟化”——检查azure docs;一旦 VM 已经具有可用的嵌套虚拟化,此答案就提供了解决方案。 正如您所解释的,标准 D2s v3(2 vcpus,8 GiB 内存)解决了这个问题。【参考方案4】:

    以管理员身份打开 PowerShell 或 CMD 会话。

    键入以下命令:

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

【讨论】:

自己发现需要在VM中运行,而不是在主机上。 这个answer has already been added【参考方案5】:

我去了码头设置和General部分选择安装other version(页面底部作为链接)。我最初安装的是stable,改成beta/edge。

这没有任何问题。

【讨论】:

【参考方案6】:

实际上原因是您没有在主机上启用 ExposeVirtualizationExtensions。 关闭嵌套虚拟机。 在主机上运行 PS 命令:

Set-VMProcessor -VMName "NESTED VM NAME" -ExposeVirtualizationExtensions $true

然后再次启动嵌套 VM(其中包含 docker)。

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

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

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

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

【讨论】:

谢谢老兄,工作就像一个魅力!

以上是关于无法启动虚拟机“MobyLinuxVM”,因为其中一个 Hyper-V 组件未运行的主要内容,如果未能解决你的问题,请参考以下文章

Hyper-V无法启动虚拟机因为虚拟机监控程序未运行

Hyper-v无法启动虚拟机,因为虚拟机管理程序未运行?

群晖无法启动虚拟机,提示主机cpu或内存不足的解决办法

Ubuntu系统下无法启动虚拟机

导入虚拟机的时候提示“无法启动导入: 未能启动帮助程序进程。”,怎么解决?

Mac OS更新后无法启动parallels desktop虚拟机