无法在Windows上启动docker

问题描述 投票:0回答:6

尝试在 Windows 10 pro 上启动 docker 时,我继续收到以下错误。我的 HyperV 已打开并正在运行: 版本 18.04.0-ce-win62 (17151) 通道:边缘 e0a85f6

如有任何帮助,我们将不胜感激!

Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: Hyper-V encountered an error trying to access an object on computer 'C001715587' because the object was not found. The object might have been deleted. Verify that the Virtual Machine Management service on the computer is running.
at New-Switch, <No file>: line 117
at <ScriptBlock>, <No file>: line 394
   at Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeClient.cs:line 36
   at Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 75
   at Docker.Actions.<>c__DisplayClass15_0.<Start>b__0() in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 59
   at Docker.WPF.TaskQueue.<>c__DisplayClass19_0.<.ctor>b__1() in C:\gopath\src\github.com\docker\pinata\win\src\Docker.WPF\TaskQueue.cs:line 59
docker docker-for-windows
6个回答
23
投票

您可能需要修复
vmcompute
的“控制流防护”设置。

(请注意,CFG是一种漏洞利用保护机制,因此更改它时要注意并理解它存在的原因。)

  1. 打开

    Windows Security

  2. 打开

    App & Browser control

  3. 点击

    Exploit protection settings

  4. 切换到

    Program settings
    选项卡

  5. 在列表中找到

    C:\WINDOWS\System32\vmcompute.exe
    并将其展开

  6. 点击

    Edit

  7. 向下滚动到

    Control flow guard (CFG)
    并取消选中
    Override system settings

  8. 从 powershell 启动 vmcompute

    net start vmcompute
    (或者从系统服务应用程序启动
    Hyper-V Host Compute Service

  9. 重新启动电脑

  10. 以管理员身份打开 Hyper-V

  11. 连接服务器,本地电脑,OK

当我无法运行 docker 时,上述内容对我有用,然后我意识到我无法连接到 hyper-v 上的本地计算机。这就是最终成功的方法。


5
投票

试试这个。解决了很多人的问题

cd "C:\Program Files\Docker\Docker" 
./DockerCli.exe -SwitchDaemon

1
投票

我尝试从 C:\Program Files\Docker\Docker\Docker Desktop.exe 运行它 它起作用了。

此外,我添加的另一件事是我保持 Cisco AnyConnect VPN 服务运行(尽管没有连接任何 VPN)。我知道这一点听起来很奇怪,但我想分享一下。


1
投票

如果您像我一样,已经在您的系统上安装了 wsl2 发行版(在您安装 Docker Desktop 时)并且上面的所有答案都没有帮助,那么请通过点击命令 wsl -l 来查看您的发行版是否实际运行-v

wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-20.04           Running         2
  docker-desktop         Running         2
  docker-desktop-data    Running         2

如果是这样,请通过运行 wsl -t Ubuntu-20.04 这解决了我的系统上的问题来关闭您的 wsl 实例。 wsl 实例关闭后,Docker Desktop 窗口立即出现。

我认为问题是我已经在这个 wsl 实例中安装了 docker。


0
投票

如果你面对

无法停止 Hyper-V VM:服务“Hyper-V 主机计算服务” (vmcompute)' 由于以下错误而无法启动:无法 在计算机“.”上启动服务 vmcompute。

出现此错误,请按照以下步骤操作:

  1. 打开“窗口安全”
  2. 打开“应用程序和浏览器控制”
  3. 点击底部的“利用保护设置”
  4. 切换到“程序设置”选项卡
  5. 在列表中找到“C:\WINDOWS\System32 mcompute.exe”并将其展开
  6. 点击“编辑”
  7. 向下滚动到“代码流防护(CFG)”并取消选中“覆盖系统设置”
  8. 从powershell“net start vmcompute”启动vmcompute

0
投票

我的解决办法是在我的 BIOS 中启用虚拟化。它将位于

Advanced > CPU Configuration > SVM
- 确保其已启用

© www.soinside.com 2019 - 2024. All rights reserved.