无法在 windows 开始 docker
Can't start docker on windows
尝试在 Windows 10 pro 上启动 docker 时,我继续收到以下错误。我的 HyperV 已打开并且 运行:
版本 18.04.0-ce-win62 (17151)
通道:边缘
e0a85f6
如有任何帮助,我们将不胜感激!
无法创建:运行 命令停止,因为首选项变量 "ErrorActionPreference" 或公共参数设置为停止:Hyper-V 在尝试访问计算机上的对象时遇到错误 'C001715587' 因为找不到对象。该对象可能已被删除。验证计算机上的虚拟机管理服务是否为 运行。
在 New-Switch,:第 117 行
在 , : 第 394 行
在 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeClient.cs:line 36 中的 Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters)
在 Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup) 在 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 75
在 Docker.Actions.<>c__DisplayClass15_0.b__0() 中 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs: 第 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
您可能需要修复 vmcompute
的“Control Flow Guard”设置。
(注意是CFG is an exploit-protection mechanism,所以改的时候要注意,明白为什么存在。)
打开Windows Security
打开App & Browser control
点击Exploit protection settings
切换到 Program settings
选项卡
在列表中找到 C:\WINDOWS\System32\vmcompute.exe
并展开它
点击Edit
向下滚动到 Control flow guard (CFG)
并取消选中 Override system settings
从 powershell 启动 vmcompute net start vmcompute
(或者从系统服务应用启动 Hyper-V Host Compute Service
)
重启电脑
以管理员身份打开 Hyper-V
连接到服务器,本地计算机,OK
当我无法 运行 docker 时,以上对我有用,然后我意识到我无法连接到 hyper-v 上的本地计算机。这就是最终起作用的方法。
试试这个。解决了很多人的问题
cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon
如果你面对
Unable to stop Hyper-V VM: Service 'Hyper-V Host Compute Service
(vmcompute)' cannot be started due to the following error: Cannot
start service vmcompute on computer '.'.
这个错误然后按照以下步骤操作:
- 打开"Window Security"
- 打开"App & Browser control"
- 点击底部的"Exploit protection settings"
- 切换到 "Program settings" 选项卡
- 在列表中找到 "C:\WINDOWS\System32\vmcompute.exe" 并展开它
- 点击"Edit"
- 向下滚动到 "Code flow guard (CFG)" 并取消选中 "Override system settings"
- 从 powershell 启动 vmcompute "net start vmcompute"
我的解决方法是在我的 BIOS 中启用虚拟化。它将在 Advanced > CPU Configuration > SVM
- 确保它已启用
我尝试从 C:\Program Files\Docker\Docker\Docker 运行 Desktop.exe
它奏效了。
此外,我添加的另一件事是我保留了 Cisco AnyConnect VPN 服务 运行ning(尽管 none 的 VPN 已连接)。我知道这一点听起来很奇怪,但我想分享一下。
如果你和我一样,已经在你的系统上安装了 wsl2 发行版(在你安装 Docker 桌面版时)并且上面的所有答案都没有帮助,那么看看你的发行版是否真的是 运行 通过点击命令 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 实例,这解决了问题 在我的系统上。 Docker 桌面 window 在 wsl 实例关闭后立即启动。
我认为问题是我已经在此 wsl 实例中安装了 docker。
尝试在 Windows 10 pro 上启动 docker 时,我继续收到以下错误。我的 HyperV 已打开并且 运行: 版本 18.04.0-ce-win62 (17151) 通道:边缘 e0a85f6
如有任何帮助,我们将不胜感激!
无法创建:运行 命令停止,因为首选项变量 "ErrorActionPreference" 或公共参数设置为停止:Hyper-V 在尝试访问计算机上的对象时遇到错误 'C001715587' 因为找不到对象。该对象可能已被删除。验证计算机上的虚拟机管理服务是否为 运行。 在 New-Switch,:第 117 行 在 , : 第 394 行 在 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeClient.cs:line 36 中的 Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters) 在 Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup) 在 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 75 在 Docker.Actions.<>c__DisplayClass15_0.b__0() 中 C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs: 第 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
您可能需要修复 vmcompute
的“Control Flow Guard”设置。
(注意是CFG is an exploit-protection mechanism,所以改的时候要注意,明白为什么存在。)
打开
Windows Security
打开
App & Browser control
点击
Exploit protection settings
切换到
Program settings
选项卡在列表中找到
C:\WINDOWS\System32\vmcompute.exe
并展开它点击
Edit
向下滚动到
Control flow guard (CFG)
并取消选中Override system settings
从 powershell 启动 vmcompute
net start vmcompute
(或者从系统服务应用启动Hyper-V Host Compute Service
)重启电脑
以管理员身份打开 Hyper-V
连接到服务器,本地计算机,OK
当我无法 运行 docker 时,以上对我有用,然后我意识到我无法连接到 hyper-v 上的本地计算机。这就是最终起作用的方法。
试试这个。解决了很多人的问题
cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon
如果你面对
Unable to stop Hyper-V VM: Service 'Hyper-V Host Compute Service (vmcompute)' cannot be started due to the following error: Cannot start service vmcompute on computer '.'.
这个错误然后按照以下步骤操作:
- 打开"Window Security"
- 打开"App & Browser control"
- 点击底部的"Exploit protection settings"
- 切换到 "Program settings" 选项卡
- 在列表中找到 "C:\WINDOWS\System32\vmcompute.exe" 并展开它
- 点击"Edit"
- 向下滚动到 "Code flow guard (CFG)" 并取消选中 "Override system settings"
- 从 powershell 启动 vmcompute "net start vmcompute"
我的解决方法是在我的 BIOS 中启用虚拟化。它将在 Advanced > CPU Configuration > SVM
- 确保它已启用
我尝试从 C:\Program Files\Docker\Docker\Docker 运行 Desktop.exe 它奏效了。
此外,我添加的另一件事是我保留了 Cisco AnyConnect VPN 服务 运行ning(尽管 none 的 VPN 已连接)。我知道这一点听起来很奇怪,但我想分享一下。
如果你和我一样,已经在你的系统上安装了 wsl2 发行版(在你安装 Docker 桌面版时)并且上面的所有答案都没有帮助,那么看看你的发行版是否真的是 运行 通过点击命令 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 实例,这解决了问题 在我的系统上。 Docker 桌面 window 在 wsl 实例关闭后立即启动。
我认为问题是我已经在此 wsl 实例中安装了 docker。