一、首先安装wsl2并迁移到D盘先装wsl2再装docker1、彻底清理旧版 WSL 环境wsl --list --all如果看到Ubuntu Ubuntu-20.04 docker-desktop则wsl --unregister Ubuntu wsl --unregister Ubuntu-20.04 wsl --unregister docker-desktop wsl --unregister docker-desktop-data 卸载系统组件可选彻底清理 wsl --shutdown dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart在“应用和功能”中卸载Windows Subsystem for Linux UpdateUbuntuDocker Desktop2、重新启用并安装 WSL23、安装 Ubuntu 22.04并迁移到D盘默认情况下WSL 会安装在 C 盘。将其导出迁移到 D 盘1、安装 Ubuntu 22.04 wsl --install -d Ubuntu-22.04 首次启动后根据提示创建用户如 zyl。 如果提示“wsl: 检测到 localhost 配置但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost。”这是正常的不用管他。原作者的提示我没有遇到2、导出系统镜像 wsl --shutdown wsl --export Ubuntu-22.04 D:\WSL\ubuntu.tar 3、注销旧系统 wsl --unregister Ubuntu-22.04 4、导入到 D 盘 wsl --import Ubuntu-22.04 D:\WSL\Ubuntu D:\WSL\ubuntu.tar --version 2 del D:\WSL\ubuntu.tar 5、验证迁移 wsl --list --verbose Ubuntu-22.04 Stopped 2 6、首次进入系统与基础配置 wsl -d Ubuntu-22.044、过程的报错出现报错无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”提取列表分发。操作超时错误代码: Wsl/InstallDistro/0x80072ee2解决方法可以尝试更改为如下公共DNS阿里的亲测可用腾讯 DNSIP119.29.29.29备用182.254.116.116阿里DNSIP223.5.5.5 223.6.6.6百度DNSIP:180.76.76.76谷歌DNSIP:8.8.8.8二、安装docker同样是迁移到D盘1、cd到Docker Desktop的安装包2、cmd中运行以下文件夹D:\Program Files\Docker\data会出现权限问题start /w Docker Desktop Installer.exe install -accept-license --installation-dirD:\Program Files\Docker --wsl-default-data-rootD:\Program Files\Docker\data --windows-containers-default-data-rootD:\\Program Files\\Docker其中D:\Program Files\Docker 是Docker Desktop 安装程序 的安装目录D:\Program Files\Docker\data是Docker存放是Docker 用于存储镜像、容器、卷等数据的目录。3、过程的报错deploying WSL2 distributions ensuring main distro is deployed: deploying docker-desktop: preparing directory D:\\Program Files\\Docker\\data\\main for WSL distro docker-desktop: creating distro destination dir D:\\Program Files\\Docker\\data\\main: mkdir D:\Program Files\Docker\data: Access is denied. checking if isocache exists: CreateFile \\wsl$\docker-desktop-data\isocache\: The network name cannot be found.解决方式盘/文件夹点击属性---安全---添加---Everyone---检查名称---确定---权限勾上完全控制---应用即可点击确定的时候会报错告诉我docker文件夹里的一些系统文件不可修改一直点击确认即可后续猜测有可能是没有提前建立data文件夹的原因以上方式解决之后没有再重新验证三、制作镜像的docker命令1、如果基础镜像在本地 则加载基础镜像到本地 Docker 仓库或者在docker仓库选好基础镜像直接写入dockerfile# 加载基础镜像 docker load -i runtime-sandbox-base.tar # 修改镜像名 docker tag 镜像id 新镜像名2、把dockerfile文件和离线下载的依赖包放在一个文件夹之后 cd 到文件夹docker build -t 镜像名 -f ./Dockerfiledockerfile在的文件夹 ./输出目录3、导出镜像docker save -o E:\dots.tar输出文件路径 dots镜像名四、docker缓存清理清理未使用的容器和数据卷 docker container prune -f # 强制删除所有停止的容器 docker volume prune -f # 删除未关联的卷 清理未使用的镜像及构建缓存 docker image prune -a -f # 删除所有未被引用的镜像含悬空镜像 docker builder prune # 清理构建缓存 综合清理命令一键操作 docker system prune -a -f # 清除所有未使用的容器、镜像、卷、网络及构建缓存 1、清理无用的 Docker 镜像 打开WSL的linux终端输入如下命令即可 docker image prune 2、压缩WSL磁盘空间 先退出WSL系统停掉WLS服务打开PowerShell管理员, 输入如下命令 wsl --shutdown 然后查看WSL中ubuntu的运行状态 wsl -l -v 在PowerShell中逐一输入如下命令每一步需要等待上一步完成后再执行文件路径 要换成自己的挂载路径 diskpart select vdisk fileD:\WSL\DockerDesktopWSL\disk\docker_data.vhdx attach vdisk readonly compact vdisk detach vdisk exit