无法在Windows上启动Docker桌面版

18

我无法在 Windows 10 专业版中启动 Docker 容器。经过查找,发现这个错误是由于 Docker 引擎无法启动引起的。

在安装 Docker 后,我只能运行 docker 版本命令。

-> docker --version

当在 CMD 上运行其他 docker 命令时,出错信息显示 docker 守护程序未在 Windows 中运行。

我还在“控制面板” -> “程序” -> “打开或关闭 Windows 功能” 中启用了(选中)Hyper-V 选项。

输入图片描述

11个回答

39

这个错误与守护程序有关:

在 Windows 上默认的守护程序配置中,必须以提升权限运行 Docker 客户端才能连接。

我们可以将 Docker 守护程序切换为以提升权限用户运行,以在 Windows 专业版中运行 Docker 守护程序:

使用 Windows Powershell 以管理员身份运行以下命令:

运行 PowerShell 命令: -

& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon

或者

您可以在以管理员身份运行的 CMD 中运行以下命令:

运行 CMD 命令: -

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


1
谢谢,这对我很有用。即使是 Docker 的文档也无法帮助我。 - Farhan Ahmed
谢谢,这个对我有用。祝你长命百岁。我已经卡在这个问题上几个月了。 - Ajani Timothy
谢谢,PowerShell 命令对我有用! - Igor Chaves

13

在我强制退出Docker Desktop更新时(由于更新卡住了,所以我不得不这样做),它无法启动。直到我遇到了这个PowerShell命令,才解决了互联网上的所有问题:

wsl -l -v

它列出了以下内容:
* Ubuntu-18.04           Stopped         2
  docker-desktop         Uninstalling    2
  docker-desktop-data    Stopped         2

即使整个系统重新启动后,它仍然不停地显示“正在卸载”。

我所做的是:

wsl -t docker-desktop

它终止了docker-desktop并解决了问题。

10
如果提示“错误代码:WSL/Service/WSL_E_DISTRO_NOT_FOUND”,请尝试运行wsl --unregister docker-desktop - SimBioT

6

删除 %appdata%\Docker\settings.json 文件,让 Docker 创建一个新的文件。


这在2023年对我起作用,我的Docker卡在尝试启动引擎的过程中。杀掉进程并删除设置文件使得Docker能够运行更新,现在它正常工作了,谢谢。 - mDeram

2

您需要检查WSL:

在命令提示符下执行"wsl -l -v"

如果结果如下所示:

wsl -l -v

然后在命令行上执行"wsl --shutdown"

再次执行"wsl -l -v",您会看到:

wsl -l -v

然后启动Docker Desktop。

这样就解决了我的问题。


1
请不要发布代码、错误信息或其他文本数据的图像。 - tripleee
它并不会做你所想象的那样。 - showtime
嗨,即使执行了wsl --shutdown,wsl仍然在运行,并且我仍然遇到无法启动docker的相同错误。 - Makarand

1

请确保下载Linux内核更新包,然后尝试重新启动Docker桌面版。

从这里下载


1

我想分享一下我的经验,如何解决“docker无法启动”或类似问题。尽管所有与Hyper-v、wsl等相关的检查都通过了,但我发现我的Win10 Home版存在一些混乱。因此,我尝试安装旧版本之一(4.4.4),而不是最新版本。结果它安装了wsl2并且没有出现任何问题! 希望这能帮助那些已经尝试过所有解决方案(例如删除%appdata%\docker文件夹)的人们 :)


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

0

我遇到了完全相同的问题,从Windows更新后出现“引用的对象类型不支持尝试的操作”错误的帖子中提供了解决方案,这解决了我的问题。在找到这个解决方案之前,我已经尝试了所有可能的方法。为了让它更简单,请按照以下步骤进行 -

  1. 复制下面的代码片段

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3] "AppFullPath"="C:\Windows\System32\wsl.exe" "PermittedLspCategories"=dword:80000000

  1. 将其保存为文件wsl.reg
  2. 执行该文件以更新wsl注册表
  3. 重新启动Docker桌面版

这些步骤基本上是为了对独立安装或通过Docker安装的WSL分发的注册表进行一些更改。


0
我也遇到了同样的错误。但是对我来说,我通过以下步骤解决了这个问题。
 -> Quit your docker desktop completely.

 -> Restart your system if possible ( optional ).

 -> Run docker desktop app with admin rights.

0

请确保您的操作系统类型需要WSL或Hyper-V才能运行docker,根据此官方链接https://docs.docker.com/desktop/install/windows-install/

对于我的情况,我正在使用Windows 11 Home操作系统,它需要WSL(Windows子系统Linux)来运行docker。因此,我在我的系统上安装了WSL。

  1. 请按照此链接安装WSLhttps://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
  2. 之后重新启动您的系统,然后打开docker(可能需要最多10秒钟才能启动)

希望这可以解决您的问题✌️


0

使用PowerShell给了我正确的方向。所有的重新启动和删除再安装都没有起作用。

wsl -l -v 显示了三个进程的列表,但是 wsl -t docker-desktop 只回应 "没有提供的名称与分布相符" 。wsl --shutdown 也无法工作。 解决方案就在下一步 wsl --unregister docker-desktop。这之后一切都进行得很顺利。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接