windows - 适用于 Windows 的 Docker 桌面

标签 windows powershell docker virtual-machine hyper-v

我正在尝试在我的 Windows 10 Pro 64 位计算机上运行 Docker 桌面,其构建规范和设置详细信息如下,

  • 版本 - Windows 10 专业版 64 位
  • 版本 -- 1903
  • 操作系统版本 -- 18362.657
  • CPU——英特尔 i7
  • Hyper-V 状态 - 已启用,我可以看到所有服务都运行良好。

我已经安装了 Docker Desktop 版本 2.2.0.3 (42716)。我以管理员身份运行它,在启动过程中它会抛出以下错误。

  • [12:59:40.968][HyperV][信息]正在创建虚拟机 DockerDesktopVM...
  • [12:59:44.416][HyperV][错误] 无法创建 Hyper-V 虚拟机:Microsoft.HyperV.PowerShell.VirtualizationException: Hyper-V 在尝试访问计算机“DESKTOP-1SOMU3A”上的对象时遇到错误,因为找不到该对象。该对象可能已被删除, 或者您可能没有执行该任务的权限。验证计算机上的虚拟机管理服务是否正在运行。 如果该服务正在运行,请尝试使用“以管理员身份运行”再次执行该任务。 ---> Microsoft.Virtualization.Client.Management.ObjectNotFoundException: Hyper-V 在尝试访问计算机“DESKTOP-1SOMU3A”上的对象时遇到错误,因为找不到该对象。 该对象可能已被删除,或者您可能没有执行该任务的权限。验证计算机上的虚拟机管理服务是否正在运行。 如果该服务正在运行,请尝试使用“以管理员身份运行”再次执行该任务。 在 Microsoft.Virtualization.Client.Management.HostComputerSystemView.GetPrimordialResourcePool(VMDeviceSettingType deviceType) 在 Microsoft.Virtualization.Client.Management.HostComputerSystemView.GetSettingCapativity(VMDeviceSettingType deviceType,SettingsDefineCapabilities 功能) 在 Microsoft.HyperV.PowerShell.VMScsiController.CreateTemplateScsiController(虚拟机父虚拟机) 在 Microsoft.HyperV.PowerShell.Commands.NewVM.ConfigureVirtualMachine(VirtualMachine vm、IOperationWatcher 操作观察器) 在 Microsoft.HyperV.PowerShell.Commands.NewVM.CreateObjects(IOperationWatcher 操作观察者)
    • --- 内部异常堆栈跟踪结束 ---

我已经搜索了类似的问题,并且到目前为止已经完成了以下操作,但没有成功。

  1. 卸载并重新安装 Docker Desktop(系统重新启动)
  2. 在应用功能中打开和关闭 Hyper-V(系统重新启动)
  3. 更改了我的系统名称以避免任何特殊字符(尽管查看 错误消息它没有反射(reflect)更改后的系统名称)。

不确定可能是什么问题。请提供指导。

谢谢

最佳答案

看起来这仍然是一个 open issue在适用于 Windows 的 Docker 上。正如 issue 中所建议的那样和 this thread你可以尝试:

  1. 打开Window Security

  2. 打开应用程序和浏览器控件

  3. 点击底部的利用保护设置

  4. 切换到程序设置选项卡

  5. 在列表中找到 C:\WINDOWS\System32\vmcompute.exe 并将其展开

  6. 点击编辑

  7. 向下滚动到代码流防护 (CFG) 并取消选中覆盖系统设置

  8. 从 PowerShell 启动 vmcompute:net start vmcompute

解决这个问题可能会很有用,因为您可以找到其他潜在的解决方案,例如having your hostname and netbiosname matched

关于windows - 适用于 Windows 的 Docker 桌面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60652917/

相关文章:

windows - Metro 应用程序可以知道其他应用程序吗?

windows - 在 Windows 中,如何为没有安装权限的用户进行按用户安装?

powershell - 按顺序运行多个 Powershell 脚本 - 在文件夹上 - 将脚本组合成主脚本

powershell - Coldfusion 变量导入 powershell

git - 从dockerfile进行git clone时我怎么知道我在哪个git分支上

windows - CMD - 任何将文本复制到剪贴板的命令?

arrays - 从 Powershell 中每个对象组的数组中获取最新日期

docker - ENV/ARG命令未在Dockerfile中填充变量

docker - 如何解析容器中的 docker 主机名(/etc/hosts)

windows - 无法使用Windows Media编码器设置默认音频设备