每次打开 Docker Desktop 都弹更新失败,点更新又回滚,循环往复?这篇帮你彻底解决。
一、问题现象
启动 Docker Desktop 时弹出如下报错:
Plain
Docker Desktop - Update Failed
An error occurred while applying the update.
The previous version of Docker Desktop has been restored and is ready to use.
If the issue persists, download and install the latest version from our website.
Failed to apply delta update
手动点击软件内更新按钮,又提示:
Plain
Update failed
An error occurred while preparing the update:
failed to install update
核心特征: 无论点多少次 "更新",最终都会自动回退到旧版本,陷入 "提示更新 → 更新失败 → 回滚 → 再提示" 的死循环。
二、根因分析
这个问题的本质是 Docker Desktop 内置增量(delta)更新机制损坏,不是你的网络问题,也不是 Docker 本身坏了。
具体原因有三个层面:
| 层级 | 原因 | 说明 |
|---|---|---|
| 补丁层 | 本地增量补丁文件损坏 | Docker Desktop 使用 bsdiff 差分补丁做增量更新,补丁文件下载不完整或被篡改后,打补丁失败,程序自动回滚 |
| 权限层 | com.docker.service 服务异常 |
Docker 特权服务运行异常,或 UAC 权限不足,更新程序无法写入安装目录 |
| 拦截层 | 安全软件拦截临时文件 | 杀毒软件、EDR、Windows Defender 实时防护拦截更新过程中的临时文件,导致补丁应用中断 |
关键结论: 一旦出现
Failed to apply delta update,说明软件内置的增量更新通道已经失效。继续在界面里点更新毫无意义,必须换用完整离线安装包覆盖升级。
三、分步解决方案
步骤 1:完全退出 Docker Desktop
在动手之前,确保 Docker 完全关闭,避免文件占用导致安装失败。
-
右下角系统托盘找到 Docker 图标,右键 → Quit Docker Desktop
-
打开任务管理器(
Ctrl + Shift + Esc),结束所有以下进程:-
Docker Desktop.exe -
com.docker.* -
Docker Desktop Service
-
步骤 2:备份镜像与容器数据(重要)
覆盖安装通常不会删除数据,但备份永远不会多余。
WSL2 后端的镜像和容器数据存放在:
Plain
%LOCALAPPDATA%\Docker\wsl\data\docker_data.vhdx
将这个 docker_data.vhdx 文件复制到其他磁盘或目录备份。如果重装后数据异常,可以用这个文件恢复。
如果你使用的是 Hyper-V 后端,数据路径为
%LOCALAPPDATA%\Docker\wsl\下的对应 vhdx 文件,同样备份即可。
步骤 3:下载完整离线安装包,覆盖安装(推荐方案)
这是最有效、最省事的解决方案,90% 以上的情况一步解决。
-
前往 Docker 官网下载最新完整安装包:
-
下载
Docker Desktop Installer.exe(完整安装包,约 500MB+)
-
右键安装包 → 以管理员身份运行
-
直接点击安装 / 确定,不需要先卸载旧版本
覆盖安装会保留你原有的镜像、容器、镜像仓库配置和设置,不会丢失数据。
安装完成后重启 Docker Desktop,更新失败的提示应该就消失了。
步骤 4:如果覆盖安装仍然报错,深度清理
少数情况下,残留的损坏缓存会导致覆盖安装也失败。这时需要做一次深度清理。
以管理员身份打开 PowerShell,依次执行:
powershell
# 1. 重启 Docker 特权服务
Restart-Service com.docker.service
# 2. 清理 Docker 桌面版临时缓存文件
Remove-Item $env:TEMP\DockerDesktop* -Recurse -Force -ErrorAction SilentlyContinue
# 3. 清理 Docker 更新缓存
Remove-Item "$env:LOCALAPPDATA\Docker\update-cache" -Recurse -Force -ErrorAction SilentlyContinue
然后临时关闭以下软件,再重新运行安装包:
-
360 安全卫士、火绒、腾讯电脑管家等杀毒软件
-
Windows Defender 实时保护
-
企业 EDR 终端安全软件
安装完成后记得重新开启安全软件。
步骤 5:终极兜底方案 ------ 干净重装
如果以上方法都无效,说明系统中残留的 Docker 组件已经严重损坏,需要彻底卸载后重装。
5.1 卸载 Docker Desktop
控制面板 → 程序和功能 → 找到 Docker Desktop → 卸载。
5.2 删除残留目录
卸载完成后,手动删除以下目录(如果存在):
Plain
C:\Program Files\Docker
%LOCALAPPDATA%\Docker
%APPDATA%\Docker
%PROGRAMDATA%\DockerDesktop
5.3 重启电脑
一定要重启,确保所有 Docker 相关服务和进程完全释放。
5.4 干净安装
重启后,以管理员身份运行下载好的完整安装包,进行全新安装。
干净重装后,之前的镜像和容器会丢失。如果你在步骤 2 备份了
docker_data.vhdx,可以在安装完成后用备份文件替换新的数据文件来恢复。
四、避坑总结
-
出现
Failed to apply delta update后,不要再点软件内更新------ 差分补丁已经损坏,点多少次都是回滚,纯属浪费时间。 -
优先用完整安装包覆盖安装------ 不需要卸载,保留数据,90% 的情况一步到位。
-
企业办公电脑、装了杀毒软件的机器更容易触发此问题------ 安全软件拦截增量补丁的临时文件是常见诱因。
-
备份
docker_data.vhdx是好习惯------ 无论覆盖还是重装,先备份数据文件,有备无患。 -
不要用第三方 "软件管家" 更新 Docker Desktop------ 它们往往也是调用增量更新,同样会失败。