windows10(19044_1706)离线安装wsl和Docker的填坑记录
一、环境
- windows10(x64内部版本19044_1706)
- docker v4.10.1
- wsl2
二、相关资料
- docker相关
- docker for windows
- windows安装docker,需要系统支持 wsl2 和 hyper-v
- wsl相关
三、linux发行版本离线安装包下载
- Ubuntu
- Ubuntu 22.04 LTS
- Ubuntu 20.04
- Ubuntu 20.04 ARM
- Ubuntu 18.04
- Ubuntu 18.04 ARM
- Ubuntu 16.04
- Debian GNU/Linux
- Kali Linux
- SUSE Linux Enterprise Server 12
- SUSE Linux Enterprise Server 15 SP2
- SUSE Linux Enterprise Server 15 SP3
- openSUSE Tumbleweed
- openSUSE Leap 15.3
- openSUSE Leap 15.2
- Oracle Linux 8.5
- Oracle Linux 7.9
- Fedora Remix for WSL
Ubuntu 18.04比较小200M左右,Debian也不大 160M
四、离线安装Ubuntu 18.04
- 通过上面的连接下载 Ubuntu_1804.2019.522.0_x64.appx 文件
- 文件复制到 C:\wlsApps\ 目录下(推荐放到c盘,忘记在哪儿看到的提醒了~~~)
- 离线安装有三种方法(找个最适合你电脑环境的,我的使用方法三安装成功了,windows环境乱的很不知道卡在那儿~~~)
- 第一种:打开 powershell 切换到 wlsApps 目录,执行: Add-AppPackage .\Ubuntu_1804.2019.522.0_x64.appx ;
- 第二种:直接双击 Ubuntu_1804.2019.522.0_x64.appx 文件;
- 第三种:将后缀修改为 .zip ,解压后运行 ubuntu1804.exe 文件;
- 验证是否安装成功,执行 wsl -l -v 命令,看到如下输出中有 Ubuntu-1804 算是成功了:
>wsl -l -v
NAME STATE VERSION
* docker-desktop-data Stopped 2
docker-desktop Running 2
Ubuntu-18.04 Running 2
- 如果看到 Ubuntu-18.04 前面没有 * 号,需要执行命令设置默认发行版本:
>wsl --set-default Ubuntu-18.04
--再次执行看到 Ubuntu-18.04 已经为默认发行版本了
>wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Stopped 2
docker-desktop-data Stopped 2
docker-desktop Running 2
- 执行命令 wsl 即可进入 ubuntu系统了,退出输入 exit
五、遇到的问题
- wsl启动时报错“参考的对象类型不支持尝试的操作”
- 运行docker闪退
- 运行docker提示:Docker Desktop stopping…
- 运行docker提示:Failed to set version to docker-desktop: exit code: -1
以上问题原因先说一下:是因为电脑上用了代理软件导致与 wsl2 的端口冲突。
第一种方法(不推荐使用):
使用命令提示符或windows终端在管理员模式下执行该命令,随后重启WSL2即可
netsh winsock reset
这个命令会将winsock网络协议重置,会导致代理软件(proxifier)无法使用!
第二种方法(推荐使用):
使用 NoLsp.exe 程序操作系统注册表以实现白名单模式互相兼容;
我们有一个可以进行此调用的工具(这里我提供三个下载链接供大家下载):
https://www.proxifier.com/tmp/Test20200228/NoLsp.exe
https://xaizai.lanzouo.com/iRZ7szooksb
https://share.weiyun.com/ogl07Rc5
以管理员身份运行cmd,切换到NoLsp.exe目录,并以wsl.exe的完整路径作为参数执行下面的命令:
NoLsp.exe c:\windows\system32\wsl.exe
以上命令会在注册表写入一些值,写的内容在以下位置:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3
AppFullPath = c:\windows\system32\wsl.exe --类型 REG_SZ
PermittedLspCategories = 80000000 --类型 REG_DWORD
六、总结
docker安装需要首先配置windows的wsl环境,配置时推荐使用windows的文档一步步操作。
由于本地网络无法访问windows应用商店,所以只能手动安装linux发行版本,梳理了三种安装方法。
由于本机使用了 proxifier 软件,导致安装wsl、子系统、docker都是问题,总结了问题避免后来者踩坑。