提示:修改Docker Desktop的安装位置要提前操作,建议提前更新到wsl2


准备

一般默认是开启的,但以防万一,还是检查一下,虚拟化是关闭的话,不同笔记本操作不同,自行百度吧

docker 提示wsl版本低怎么办 docker desktop wsl2_运维


docker 提示wsl版本低怎么办 docker desktop wsl2_运维_02


docker 提示wsl版本低怎么办 docker desktop wsl2_desktop_03

wsl2

选择要安装的版本

wsl --list --online

docker 提示wsl版本低怎么办 docker desktop wsl2_desktop_04

安装对应版本 (Ubuntu-20.04 为上图 NAME)

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版本

wsl -l -v

# 结果
Name              State            Version
Ubuntu-20.04      Stopped          1

执行更新

wsl --set-version Ubuntu-20.04  2
#输出
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。

# 重新查看
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 提示wsl版本低怎么办 docker desktop wsl2_Ubuntu_05

安装Docker Desktop

docker 提示wsl版本低怎么办 docker desktop wsl2_Ubuntu_06


docker 提示wsl版本低怎么办 docker desktop wsl2_运维_07

修改Docker Desktop默认安装位置(在安装前操作)

# Docker Desktop默认安装位置
C:\Program Files\Docker

# 建立软连接的命令如下:(再没安装之前执行)  使用Windows PowerShell会报错,使用 命令提示符 没事(如下图)
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"

docker 提示wsl版本低怎么办 docker desktop wsl2_desktop_08

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[文件名,包含文件全路径]>