Windows运行Docker报错Failed to set version to docker-desktop exit code:-1如何解决
触发原因
- WSL版本配置不匹配:Docker Desktop运行依赖WSL 2架构,如果WSL内核版本过低、或docker-desktop相关子实例的WSL版本被错误设置为1,就会触发该异常。
- Windows网络堆栈冲突:旧版本Docker、VMware/VirtualBox等虚拟化软件残留的网络适配器配置,会和WSL 2所需的虚拟网络配置冲突,导致版本设置操作失败。
- 权限不足:当前Windows账户没有修改WSL配置的管理员权限,或Docker Desktop未以管理员权限运行,导致操作被系统拦截。
- WSL子实例损坏:docker-desktop、docker-desktop-data两个WSL子实例出现文件损坏,无法正常执行版本设置操作。
排查修复步骤
- 步骤1:校验并修正WSL版本配置
打开管理员权限的PowerShell终端,执行命令wsl -l -v,查看输出列表中docker-desktop、docker-desktop-data两个实例的VERSION列是否为2。如果为1,依次执行以下命令修改版本:
如果执行时提示WSL内核版本过低,执行wsl --set-version docker-desktop 2 wsl --set-version docker-desktop-data 2wsl --update更新内核,重启电脑后再执行上述版本修改操作。 - 步骤2:重置Winsock网络堆栈
依旧在管理员权限PowerShell中执行命令netsh winsock reset,执行完成后重启电脑,可解决大部分网络配置冲突问题。 - 步骤3:配置Docker管理员运行权限
右键点击Docker Desktop桌面快捷方式,选择「属性」→「兼容性」,勾选「以管理员身份运行此程序」,保存设置后重新启动Docker Desktop。 - 步骤4:重置Docker Desktop出厂配置
如果上述操作无效,打开Docker Desktop设置页面,进入「故障排查」选项,点击「恢复出厂默认」,等待重置完成后重启Docker。注意:该操作会清空本地所有容器、镜像数据,重要数据请提前备份。 - 步骤5:重新注册WSL实例并重装Docker
若重置后问题依旧存在,在管理员PowerShell中依次执行以下命令注销损坏的WSL实例:
执行完成后卸载当前Docker Desktop,重启电脑后重新安装最新版Docker Desktop即可。wsl --unregister docker-desktop wsl --unregister docker-desktop-data
内容的提问来源于stack exchange,提问作者Tohid Makari
相关产品推荐
相关产品推荐

