【问题标题】:Can't start docker on windows无法在 Windows 上启动 docker
【发布时间】:2018-10-12 01:40:31
【问题描述】:

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

任何帮助将不胜感激!

无法创建:运行命令已停止,因为首选项变量“ErrorActionPreference”或通用参数设置为停止:Hyper-V 在尝试访问计算机“C001715587”上的对象时遇到错误,因为找不到该对象。该对象可能已被删除。验证计算机上的虚拟机管理服务是否正在运行。 在新开关处:第 117 行 在,:第 394 行 在 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeClient.cs:line 中的 Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] 参数) 36 在 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs: 75 中的 Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup) 在 Docker.Actions.c__DisplayClass15_0.b__0() 在 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 59 在 Docker.WPF.TaskQueue.c__DisplayClass19_0.<.ctor>b__1() 在 C:\gopath\src\github.com\docker\pinata\win\src\Docker.WPF\TaskQueue.cs:line 59

【问题讨论】:

  • 那么您是否确认计算机上的虚拟机管理服务正在运行

标签: docker docker-for-windows


【解决方案1】:

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

(注意CFG is an exploit-protection mechanism,所以改的时候要注意,理解它存在的原因。)

  1. 打开Windows Security

  2. 打开App &amp; 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 net start vmcompute 启动 vmcompute(或者从系统服务应用程序启动 Hyper-V Host Compute Service

  9. 重启电脑

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

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

当我无法运行 docker 时,上述方法对我有用,然后我意识到我无法连接到 hyper-v 上的本地计算机。这终于奏效了。

【讨论】:

  • 请注意,该过程可以在“打开‘应用程序和浏览器控件’”处启动。此外,在此设置更改后,我能够启动 Docker。 Hyper-V Host Compute Service 应该在启动 Docker 之前运行。无需重新启动系统。 YMMV。
  • 就我而言,所有步骤都是解决问题所必需的。谢谢!
  • 这些步骤(1-8)也为我解决了以下错误-Unable to stop - The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: Service 'Hyper-V Host Compute Service (vmcompute)' cannot be started due to the following error: Cannot start service vmcompute on computer '.'.
【解决方案2】:

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

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

【讨论】:

  • 在尝试@J.D 的答案后这对我有用,但它不起作用。请注意,您可能需要同时执行这两项操作。
  • 非常感谢 Tejashree,在尝试了数小时的垃圾解决方案之后,你的终于为我工作了。你太棒了
【解决方案3】:

我尝试从 C:\Program Files\Docker\Docker\Docker Desktop.exe 运行它 它奏效了。

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

【讨论】:

    【解决方案4】:

    如果你面对

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

    这个错误然后按照以下步骤操作:

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

    【讨论】:

      【解决方案5】:

      对我来说,解决方法是在我的 bios 中启用虚拟化。它将位于Advanced &gt; CPU Configuration &gt; SVM - 确保它已启用

      【讨论】:

        猜你喜欢
        • 2017-03-20
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 2016-08-21
        • 1970-01-01
        • 1970-01-01
        • 2020-10-04
        • 1970-01-01
        相关资源
        最近更新 更多