windows11运行Docker Desktop,报错Docker Desktop -WSL update failed

windows11运行Docker Desktop,报错Docker Desktop -WSL update failed

详细报错信息:

Docker Desktop -WSL update failed An error occurred while updating WSL. You can restart Docker Desktop to try again or manually update using wsl –update. If the issue persists please collect diagnostics and submit an issue …://docs.docker.com/desktop/troubleshoot/overview/#diagnose-from-the-termin…

**解决方法一:**重新安装Docker Desktop,但是依然报错

解决方法二:

1.安装WSL2

使用命令:

1
# 查看可安装的版本信息wsl --list --online

1
# 安装对应版本  (Ubuntu-20.04 为下图 NAME)wsl --install -d Ubuntu-20.04   

2.wsl更新到wsl2

获取WSL2 Linux内核更新包并运行

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

将 WSL 2 设置为默认版本

1
wsl --set-default-version 2

查看目前的WSL版本

1
wsl -l -v

重新执行这条命令:

1
wsl --install -d Ubuntu-20.04

输入用户名和密码之后是这样:

重新下载

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

然后再重新运行程序,但运行之后依然报错

再次将 WSL 2 设置为默认版本

1
wsl --set-default-version 2

显示

再次查看版本:

1
wsl -l -v

执行更新 :

1
wsl --set-version Ubuntu-20.04  2

3.wsl2迁移

 终止正在运行的wsl

1
wsl --shutdown

检查当前wsl是否在运行

1
wsl -l -v

将需要迁移的Linux,进行导出

1
wsl --export Ubuntu-20.04 D:\Ubuntu.tar

导出完成之后,就需要将原有的分发进行卸载

1
wsl --unregister Ubuntu-20.04

然后将导出的文件放到需要保存的地方,进行导入即可

1
wsl --import Ubuntu-20.04 D:\Ubuntu_2004 D:\Ubuntu.tar --version 2
1
# sansan是你之前设置的用户名ubuntu2004.exe config --default-user sansan

将之前下载的wsl_update_x64.msi放进到Ubuntu_2004文件夹,再执行

1
ubuntu2004.exe config --default-user sansan

命令,但还是显示未检测到WSL镜像。

解决方法:在Windows中的C:\Users<your_username>目录下创建一个.wslconfig文件,然后在文件中写入如下内容

1
[experimental]autoMemoryReclaim=gradual  networkingMode=mirroreddnsTunneling=truefirewall=trueautoProxy=true

然后用

1
wsl --shutdown

关闭WSL,之后再重启,提示就消失了。再执行

1
ubuntu2004.exe config --default-user sansan

这条命令时,就暂时没有问题了。

打开Docker Desktop

至此docker desktop能正常使用,没有报wsl更新错误的问题。

修改Docker Desktop默认保存位置

参考链接:

win11安装Docker Desktop 、更新wsl至wsl2、Docker-Desktop储存路径更改_docker desktop没选择wsl2怎么更改-CSDN博客

[解决”wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理” - JustInCase - 博客园 (cnblogs.com)](https://www.cnblogs.com/hg479/p/17869109.html “解决”wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理” - JustInCase - 博客园 (cnblogs.com)”)