windows10(19044_1706)离线安装wsl和Docker的填坑记录

windows10(19044_1706)离线安装wsl和Docker的填坑记录

一、环境

  • windows10(x64内部版本19044_1706)
  • docker v4.10.1
  • wsl2

二、相关资料

  • docker相关
    • docker for windows
    • windows安装docker,需要系统支持 wsl2 和 hyper-v
  • wsl相关
    • 安装WSL
    • 下载&安装WSL的Linux发型版本
    • windows终端工具

三、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都是问题,总结了问题避免后来者踩坑。

你可能感兴趣的:(问题解决经验库,linux,debian,运维)