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

时间:2020-04-17 20:11:58

标签: docker virtualbox openstack hyper-v windows-server-2016

我有Window Server 2016/2019虚拟机(Openstack)。在该Hyper-V上成功安装。但是无法启动MobyLinuxVM。

ExposeVirtualizationExtensions已通过PowerShell在“虚拟机”框中启用。

Docker.Core.DockerException:
Docker.Core.Backend.BackendDestroyException:
Unable to start Hyper-V VM: 'DockerDesktopVM' failed to start.

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

'DockerDesktopVM' failed to start. (Virtual machine ID 96BDA1DB-4163-4FA5-BEF2-62F1BEC1697E)

The Virtual Machine Management Service failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running (Virtual machine ID 96BDA1DB-4163-4FA5-BEF2-62F1BEC1697E).
at Start-MobyLinuxVM, <No file>: line 688
at <ScriptBlock>, <No file>: line 811
   at Docker.Backend.ContainerEngine.Linux.Start(Settings settings, String daemonOptions, Credential credential)
   at Docker.Backend.BackendNamedPipeServer.<Run>b__8_2(Object[] args)
   at Docker.Core.Pipe.NamedPipeServer.<>c__DisplayClass9_0.<Register>b__0(Object[] parameters)
   at Docker.Core.Pipe.NamedPipeServer.RunAction(String action, Object[] parameters)

  System.Management.Automation.RuntimeException:
  Unable to start Hyper-V VM: 'DockerDesktopVM' failed to start.

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

  'DockerDesktopVM' failed to start. (Virtual machine ID 96BDA1DB-4163-4FA5-BEF2-62F1BEC1697E)

The Virtual Machine Management Service failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running (Virtual machine ID 96BDA1DB-4163-4FA5-BEF2-62F1BEC1697E).
  at Start-MobyLinuxVM, <No file>: line 688
  at <ScriptBlock>, <No file>: line 811
     at Docker.Backend.ContainerEngine.Linux.DoStart(Settings settings, String daemonOptions, Credential credential)
     at Docker.Backend.ContainerEngine.Linux.Start(Settings settings, String daemonOptions, Credential credential)

     Microsoft.HyperV.PowerShell.VirtualizationException:
     'DockerDesktopVM' failed to start.

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

     'DockerDesktopVM' failed to start. (Virtual machine ID 96BDA1DB-4163-4FA5-BEF2-62F1BEC1697E)

The Virtual Machine Management Service failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running (Virtual machine ID 96BDA1DB-4163-4FA5-BEF2-62F1BEC1697E).

         Microsoft.Virtualization.Client.Management.VirtualizationOperationFailedException:
         'DockerDesktopVM' failed to start.

Failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running.
            at Microsoft.Virtualization.Client.Management.View.EndMethodReturnInternal(IVMTask task, VirtualizationOperation operation, Boolean affectedElementExpected)
            at Microsoft.Virtualization.Client.Management.VMComputerSystemBaseView.EndSetState(IVMTask setStateTask)
            at Microsoft.HyperV.PowerShell.ExtensionMethods.OperationWatcherExtensions.<>c__DisplayClass4_0`1.<ConvertActionToFunction>b__0(T x)
            at Microsoft.HyperV.PowerShell.ExtensionMethods.OperationWatcherExtensions.PerformOperationWithReturn[T](IOperationWatcher watcher, Func`1 startTaskMethod, Func`2 endTaskMethod, String taskDescription, VirtualizationObject targetObject)
            at Microsoft.HyperV.PowerShell.VirtualMachine.ChangeState(VirtualMachineAction action, IOperationWatcher operationWatcher)
            at Microsoft.HyperV.PowerShell.Commands.StartVM.ProcessOneOperand(VirtualMachine vm, IOperationWatcher operationWatcher)
            at Microsoft.HyperV.PowerShell.Commands.VirtualizationCmdlet`1.ProcessOperands(IList`1 operands, IOperationWatcher operationWatcher)

   at Docker.Core.Pipe.NamedPipeClient.<TrySendAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters)
   at Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean withNotifications)
   at Docker.Actions.<>c__DisplayClass26_0.<StartAsync>b__0()
   at Docker.ApiServices.TaskQueuing.TaskQueue.<>c__DisplayClass18_0.<.ctor>b__1()

3 个答案:

答案 0 :(得分:1)

解决方法

  1. 在Windows管理工具下打开Hyper-V管理器
  2. 注意DockerDesktopVM不在虚拟机下运行
  3. 在“操作”窗格下,单击“停止服务”,然后单击“启动服务”
  4. 重新启动Docker桌面

对我有用

答案 1 :(得分:0)

确保在您的BIOS中启用了VT-X虚拟化

答案 2 :(得分:0)

我遇到了同样的问题,我按照以下步骤解决了这个问题。 如果您能够运行Windows容器,则说明Hyper-V存在问题

  1. 通过-在VM上启用超级 enter image description here
  2. 我们还必须启用硬件虚拟化,这可以通过以下方式完成(IT团队可以提供帮助,因为这应该在CPU级别完成) enter image description here