Windows 上永远显示“Docker Desktop 正在启动...”

Yid*_*dne 68 docker windows-10 docker-for-windows docker-desktop windows-11

我已经安装了 Docker Desktop 版本 4.4.4,但它没有运行。它只显示“Docker Desktop Starting ...”,但从未开始运行。

我尝试了很多方法都没有解决:

  1. 在 Windows 防火墙中允许以下文件 C:\program files\docker\docker\resources\vpnkit.exe、C:\program files\docker\docker\com.docker.service C:\program files\docker\docker\resources\ com.docker.proxy.exe
  2. 从 AppData/Roaming 和 AppData/Local 中删除“Docker”和“Docker Desktop”文件夹
  3. 卸载并重新安装不同版本的 Docker,包括 4.5.1

Roe*_*lDS 105

主要问题是 WSL2 在安装 WSL2 时不会自动安装内核,但 Docker Desktop 期望它已经安装。因此,正如其他答案所说,完全关闭并停止 Docker,然后以管理员身份运行此 cmd:

wsl --update
Run Code Online (Sandbox Code Playgroud)

现在打开 Docker Desktop & 它应该可以正常启动。


编辑:这个答案现在应该是不必要的,因为 Docker Desktop v4.22 在第一次运行时会显示这一点,如果它必须安装 WSL2 作为其安装的一部分。

Docker Desktop - WSL 内核版本太低

然而,

我注意到在我选择退出并运行更新并重新启动 Docker 后,它仍然再次挂起。然后我必须再次退出 Docker,再次打开应用程序,并等待大约 1 或 2 分钟以使其完成初始启动。在较新的 PC 上可能会更快,因为我现在使用的是 Win10 22H2,只有 4GB RAM。几周后我将在较新的 PC 上再次测试 Win11 22H2。

  • 奇怪的是,docker 没有给出任何关于这个简单问题的消息,只是一直停滞不前。 (16认同)
  • 在 Windows 11 Pro 上为我修复了这个问题,谢谢。 (4认同)
  • 我认为这对我有帮助。你的回答是一个小时前,时机很好 (3认同)
  • 这对我在 Windows 11 家庭版上有效。万分感谢。 (3认同)
  • 这也适用于 W10 22H2 (2认同)
  • 它更新了一些内容,但即使在电脑重新启动后,Docker Desktop 仍会在启动时挂起。 (2认同)
  • 不起作用,我收到“最新版本的 Linux Windows 子系统已安装。”并且 Docker 在启动时仍然无限期挂起 (2认同)

Met*_*iel 24

我发现导致解决方案的另一个症状也与WSL有关。

一方面,Docker服务不会开始抛出此错误:

连接期间出错:此错误可能表明 docker 守护进程未运行。:获取“http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/version”:打开 //./pipe/docker_engine:系统找不到指定的文件。

另一方面,WSL没有响应。尝试直接在 CMD 上运行 WSL Distro 或 WSL 命令根本不会返回任何输出。它只会挂在那里。

所以该解决方案对于 WSL 和 Docker 是通用的。我在有关 WSL 问题的问题中发现,LxssManager Windows 服务已过时(它可能在services.msc下显示为“正在停止”,并且所有按钮均呈灰色,或者我什至看到它明显在运行,但随着Docker 和 WSL 存在上述问题,所以仍然有问题。)

首先,我们必须获取 LxssManager PID 才能杀死它。使用提升的 shell,我们可以这样得到它:

sc queryex LxssManager
Run Code Online (Sandbox Code Playgroud)

有了 PID,我们就可以终止该进程,但要注意我无法使用killtaskkill命令终止它。我收到以下错误:

ERROR: The process with PID XXXXX could not be terminated.
Reason: Access is denied.
Run Code Online (Sandbox Code Playgroud)

要有效终止该进程,请执行以下操作:

wmic process where ProcessID=XXXXX delete
Run Code Online (Sandbox Code Playgroud)

当然,将 XXXXX 替换为 PID。完成后,启动 LxssManager 服务:

net start LxssManager
Run Code Online (Sandbox Code Playgroud)

警告: 我注意到在某些情况下,由于未知的(对我来说)技术原因,这还不够,即使 LxssManager 服务显示为Running。只需重复以上步骤即可!有时执行一次就有效,有时由于某种原因执行两次。

长话短说

  1. 使用 wmic+PID 终止 LxssManager Windows 服务。
  2. 启动LxssManager服务。
  3. 如果问题仍然存在,请重复两次或更多次。
  4. Docker 和 WSL 问题已解决。

  • 您的解决方案有效,但问题会在几天或几周左右再次出现。过去 5 个月我像这样修复了 10 次。然后我通过停止使用桌面 docker 并仅使用 Linux 来永久“修复”了这个问题。 (9认同)
  • 对我来说,LxssManager 正在运行并且看起来很好,但重新启动服务解决了问题,谢谢! (2认同)
  • 对于这类问题,这就是我根本不使用 docker 的原因。 (2认同)

Faz*_*oon 8

要解决此问题,请按照以下步骤操作。

只需删除以下临时文件即可。

  1. C:\Windows\Temp
  2. C:\Users\{yourAccountName}\AppData\Local\Temp
  3. C:\Windows\Prefetch

然后

  • 卸载 Docker 桌面
  • 重新启动计算机
  • 在安装 Docker 之前,请确保您有 Ubuntu WSL(从 Microsoft 商店下载)
  • 适用于 Windows x64 计算机的 WSL2 Linux 内核更新包 在此输入图像描述
  • [可选] 如果需要Terminal(多终端)请从Microsoft Store下载
  • 再次安装 Docker Desktop


小智 6

对我来说,这是 WSL 的问题。当我尝试时:

wsl --install -d Ubuntu
Run Code Online (Sandbox Code Playgroud)

在命令窗口中,几分钟后我收到错误0x80370114

修复方法是:

  1. 漏洞利用防护 > 系统设置 > 控制流防护
  2. 打开
  3. 重新启动计算机

然后重新安装/重新启动 Docker Desktop,就可以了!

希望这对其他人有帮助


Man*_*the 5

我面临着与 Docker 版本 4.* 相同的代码。对我来说这是 Visual Studio 代码,

  1. 停止 WSL 表单任务管理器

  2. 停止了 Docker,它在任务管理中显示“Docker 桌面正在启动”

  3. 从任务管理器中停止 Visual Studio Code

  4. 再次启动Docker

这些步骤使我的 Docker 在 30 秒内进入运行状态

希望这对某人有帮助!


Sak*_*med 5

通过 @Alvi 在 Windows 任务的“Docker is running..”中永远回答 Docker解决了这个问题

我猜你正在使用 wsl2 功能。在这种情况下,请打开 PowerShell 或命令提示符并键入:Optionalfeatures.exe

向下滚动并取消选中

Linux 的 Windows 子系统

应用更改并重新启动计算机。

重启后再次按照前面的步骤进行检查

Linux 的 Windows 子系统

并再次重新启动。希望现在你的 docker 可以运行了


归档时间:

查看次数:

98263 次

最近记录:

1 年,9 月 前