- 准备
- wsl2
- wsl更新到wsl2
- wsl2迁移
- Docker-Desktop储存路径更改
- Docker-Desktop储存路径更改
- win系统安装docker 需要注意本机端口是否被使用,如果使用映射的时候就没法用了
- cmd中wsl命令
安装软件Docker Desktop的时候出现了报错,造成Docker软件无法正常打开,显示的是WSL的版本太低,因此需要自己另外想办法将WSL升级一下,先尝试了一下在Power Shell中使用命令升级,然后发现会报错,因此找了教程,这里记录一下成功升级的方法。
Docker Desktop:https://www.docker.com/直接在官网下载即可。
在线学习资源
准备
-
打开任务管理器,查看CPU下的虚拟化是否启用,若没有启用则需要开启。
-
打开“启用或关闭Windows功能”,检查“适用于Linux 的Windows子系统”是否勾选,若没有则需要勾选。
wsl2
提示:PowerShell需要以管理员的身份运行。
- 选择需要安装的版本
wsl --list --online
- 安装对应版本
wsl --install -d Ubuntu-20.04
# wsl2升级包
# https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
wsl更新到wsl2
- 获取WSL2 Linux内核更新包并运行
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
- 将WSL 2 设置为默认版本
wsl --set-default-version 2
- 查看目前的WSL版本
PS C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 1
- 执行更新
PS C:\WINDOWS\system32> wsl --set-version Ubuntu-20.04 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。
# 重新查看目前的WSL版本
PS C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
wsl2迁移
# 终止正在运行的wsl
wsl --shutdown
# 检查当前wsl是否在运行
wsl -l -v
# 将需要迁移的Linux,进行导出
wsl --export Ubuntu-20.04 D:\Ubuntu.tar
# 导出完成之后,就需要将原有的分发进行卸载
wsl --unregister Ubuntu-20.04
# 然后将导出的文件放到需要保存的地方,进行导入即可
wsl --import Ubuntu-20.04 D:\Ubuntu_2004 D:\Ubuntu.tar --version 2
# 上述操作完成之后能够顺利打开WSL Ubuntu,但是显示以root身份登录
# 进行用户配置<username>是你前面注册的用户名(如果你的WSL Ubuntu的名称是Ubuntu-20.04,那么对应的可执行文件名为ubuntu2004.exe)
ubuntu.exe config --default-user <username>
ubuntu2004.exe config --default-user zkc
# 看下图进入对应目录,找到ubuntu2004.exe,在此目录进入cmd执行上面的命令
Docker-Desktop储存路径更改
提示:现在的新版没有办法更改安装位置,按照下面的方法在安装的时候会报错,这里只是记录一下,如果使用旧版安装要记住这个操作是在安装之前进行
# Docker Desktop的默认存储路径
C:\Users${用户文件}\AppData\Local\Docker
# 建立软连接:(第一个参数是原本的Docker-Desktop要安装的位置,第二个参数是你想要更改的位置)
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"
Docker-Desktop储存路径更改
# Docker Desktop的默认存储路径
C:\Users${用户文件}\AppData\Local\Docker
PS C:\Users\Lenovo> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
docker-desktop Running 2
docker-desktop-data Running 2
PS C:\Users\Lenovo> wsl -l --all -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
docker-desktop Running 2
docker-desktop-data Running 2
# docker-desktop:保存的是程序
# docker-desktop-data: 保存的镜像
- 将Docker-Desktop退出,确保状态是关闭状态
wsl --shutdown
# 结果
PS C:\Users\Lenovo> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
docker-desktop Stopped 2
docker-desktop-data Stopped 2
- 备份
wsl --export docker-desktop E:\wsl2\docker\docker-desktop.tar
wsl --export docker-desktop-data E:\wsl2\docker\docker-desktop-data.tar
- 注销
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
- 导入
wsl --import docker-desktop D:\wsl2\docker\docker-desktop D:\wsl2\docker\docker-desktop.tar --version 2
wsl --import docker-desktop-data D:\wsl2\docker\docker-desktop-data D:\wsl2\docker\docker-desktop-data.tar --version 2
win系统安装docker 需要注意本机端口是否被使用,如果使用映射的时候就没法用了
# 排查是否有程序占用了9091端口
netstat -ano | findstr 9091
# 通过cmd命令查看哪些端口被禁用TCP协议
netsh interface ipv4 show excludedportrange protocol=tcp
cmd中wsl命令
列出分发:wsl -l
运行指定分发:wsl -d <分发>
更改新分发的默认安装版本:wsl --set-default-version <Version>
将分发设置为默认值:wsl -s <分发>
更改指定分发的版本:wsl --set-version <分发> <版本>
立即终止所有运行的分发及 WSL2:wsl --shutdown
终止指定的分发(相当于关机):wsl -t <分发>
注销分发并删除根文件系统:wsl --unregister <分发>
将指定的 tar 文件作为新分发导入:wsl --import <Distro> <InstallLocation> <FileName>
将分发导出到 tar 文件:wsl --export <Distro[分发]> <FileName[文件名,包含文件全路径]>