Docker Desktop 4.85.0 升级踩坑:从 exit code 4294967291 到成功启动 Docker Desktop 4.85.0 升级踩坑从 exit code 4294967291 到成功启动title: Docker Desktop 4.85.0 升级踩坑从 exit code 4294967291 到成功启动date: 2026-08-04tags: [Docker, Docker Desktop, Windows, 升级失败, 踩坑记录]status: draft今天把 Docker Desktop 从 4.84.0 升到 4.85.0前前后后折腾了一个多小时。中间踩了 3 个连环坑记录一下免得下次有人或者下次我自己再被它绊到。一、问题来了UniGetUI 提示可以更新到 4.85.0我也没多想直接点了升级。结果日志里蹦出来一个很陌生的错误码Installer failed with exit code: 4294967291 End Time: 2026/8/4 12:05:01 Process return value: -1978335226 (0x8A150006) 无法更新 Docker Desktop4294967291 转成十六进制是0x8A150006看着像个很专业的错误但搜了一圈没找到什么靠谱的答案。只能自己摸索。二、第一个坑Docker Desktop 没关干净我先去看了一下进程情况发现虽然 Docker Desktop 主程序已经退出了但docker.exe命令行工具还在跑WSL2 后端的 Docker 实例也没有真正释放。Docker 安装程序的0x8A150006错误其实就是它的一个另一个实例正在运行的报错。要解决这个最简单的办法是手动清理一遍# 停止所有 Docker 相关进程 Get-Process -Name Docker Desktop,docker,com.docker* -ErrorAction SilentlyContinue | Stop-Process -Force执行完之后再检查# 重置 Docker Desktop 安装锁可选 $lock $env:LOCALAPPDATA\Docker\installer.lock if (Test-Path $lock) { Remove-Item $lock -Force }我这边installer.lock本来就不存在但杀掉进程那一步是必须的。完事后我再用 winget 重试下载安装包顺利完成——这次确实没有报另一个实例的错了。但故事还没完。三、第二个坑must be owned by an elevated account正当我以为升级成功的时候安装程序突然蹦出来这个错误错误提示大意是Error 0x8A170008:The data directory must be owned by an elevated accountDocker 安装程序要求C:\ProgramData\DockerDesktop这个目录的拥有者是管理员账户elevated account而我这个用户AI\love是普通用户目录之前被我手动操作过拥有者变成了我自己。检查一下$path C:\ProgramData\DockerDesktop Get-Acl $path | Select-Object Owner显示的Owner是AI\love这就是问题所在。修复方案在管理员 PowerShell 里执行# 第一步把目录所有权还给 Administrators 组 takeown /F C:\ProgramData\DockerDesktop /A /R /D Y # 第二步显式设置拥有者为 Administrators icacls C:\ProgramData\DockerDesktop /setowner Administrators /T /C/A表示把所有权给 Administrators 组而不是当前用户/R递归处理所有子文件和子目录/D Y在遇到拒绝访问时自动回答 Yes。执行完毕后再用 Get-Acl 验证一下Get-Acl C:\ProgramData\DockerDesktop | Select-Object Owner输出应该是Owner : BUILTIN\Administrators四、第三个坑Another instance is running权限修好之后我再次手动运行 Docker Desktop Installer.exe以管理员身份。结果又报错Another instance of the Docker Desktop Installer is already running. Please wait for it to finish.这才意识到——之前 UniGetUI 调起来的那个安装程序根本没有真正退出它在后台卡着 UAC 重新启动的步骤install-log.txt里能看到 “Not run as admin, relaunching with UAC prompt”进程一直挂着没死。清理残留进程# 查找残留的 Installer 进程 Get-Process | Where-Object { $_.Name -match docker|Docker|install -and $_.Name -notmatch powershell|pwsh } # 强制结束 Stop-Process -Name Docker Desktop Installer -Force -ErrorAction SilentlyContinue或者直接按 PIDStop-Process -Id PID1, PID2 -Force清理完进程再重新运行 E:\Downloads\Programs\Docker Desktop Installer.exe install --quiet这次终于走完了整个安装流程# 验证版本 (Get-Item C:\Program Files\Docker\Docker\Docker Desktop.exe).VersionInfo.FileVersion # 输出4.85.0.235549启动 Docker Desktop看到 “Engine starting”再变成 Containers 列表正常 五、踩坑总结把这次的 3 个连环坑整理一下方便后面对照排查错误码 / 提示原因解决方案0x8A150006/ Installer failed with exit code 4294967291Docker Desktop 没完全关闭Stop-Process -Force所有 docker* 进程0x8A170008/ must be owned by an elevated accountC:\ProgramData\DockerDesktop拥有者是普通用户takeown /F ... /A /Ricacls ... /setowner AdministratorsAnother instance is already running上一次安装程序残留Stop-Process杀掉残留 Installer 进程一键排查脚本把上面的步骤串起来写成一个完整的排查流程# Docker Desktop 升级失败排查脚本 # 1. 结束所有 Docker 进程 Get-Process -Name Docker Desktop,docker,com.docker* -ErrorAction SilentlyContinue | Stop-Process -Force # 2. 结束残留的 Docker Installer 进程 Get-Process | Where-Object { $_.Name -eq Installer -and $_.Path -like *Docker* } | Stop-Process -Force -ErrorAction SilentlyContinue # 3. 修复 C:\ProgramData\DockerDesktop 的所有权 takeown /F C:\ProgramData\DockerDesktop /A /R /D Y icacls C:\ProgramData\DockerDesktop /setowner Administrators /T /C # 4. 验证 Write-Host ✅ 进程已清理 目录权限已修复可以重新运行安装程序了注意步骤 3 的takeown和icacls需要管理员权限运行 PowerShell。六、写在最后Docker Desktop 4.85 这次升级本身是个小版本更新但 Windows 上涉及到服务权限、目录所有权、进程互斥几个层面的问题任何一个环节卡住都会让升级失败。这次折腾下来最大的感受是Windows 上安装大型软件Docker Desktop、WSL2、Visual Studio 这类最容易出问题的不在软件本身而在 Windows 的权限模型和进程管理。很多看起来莫名其妙的错误码背后都是权限或进程状态不一致导致的。如果你也在升级 Docker Desktop 时遇到奇怪的问题不妨按本文的三个方向排查进程 → 权限 → 残留实例。参考资料Docker Desktop 官方下载Docker Desktop for Windows 安装指南Windows takeown 命令文档icacls 命令文档UniGetUI 介绍本文记录于 2026 年 8 月 4 日基于 Docker Desktop 4.84.0 → 4.85.0 升级过程。