win11安装wsl以及升级到wsl2和安装docker

win11安装wsl以及升级到wsl2和安装docker环境准备安装 Linux 分发版 wsl 官网文档地址 https learn microsoft

欢迎大家来到IT世界,在知识的湖畔探索吧!

环境准备

win11安装wsl以及升级到wsl2和安装docker



欢迎大家来到IT世界,在知识的湖畔探索吧!

win11安装wsl以及升级到wsl2和安装docker

win11安装wsl以及升级到wsl2和安装docker

安装Linux分发版

wsl官网文档地址:https://learn.microsoft.com/zh-cn/windows/wsl/ 注意:

1、wsl2才支持安装docker 2、老版本的win11系统需要手动下载支持wsl2的 Linux内核更新包(点击运行即可)

# 通过该命令查看默认的wsl是1还是2, wsl --status # wsl --status 输出结果-1 # 如果是1,就需要先看一下 【wsl1升级至wsl2】 ,去升级wsl2所需的linux内核 默认版本: 1 # wsl --status 输出结果-2 # 如果是2,就不用升级了,执行wsl --install -d Ubuntu-20.04命令理论上不会出现问题 默认版本: 2 # 选择要安装的版本(其实也可从微软商店中下载Linux分发版) wsl --list --online # 安装Linux分发版 (Ubuntu-20.04 为下图 NAME) wsl --install -d Ubuntu-20.04 # 安装完成后 # 首次启动新安装的 Linux 分发版时,会让你输入用户名,以及密码,完成后即为安装成功

欢迎大家来到IT世界,在知识的湖畔探索吧!

win11安装wsl以及升级到wsl2和安装docker

问题1、wsl –list –online无法解析服务器的名称或地址

欢迎大家来到IT世界,在知识的湖畔探索吧!C:\Users\Lenovo>wsl --list --online 无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”中提取列表分发。无法解析服务器的名称或地址 Error code: Wsl/WININET_E_NAME_NOT_RESOLVED # 解决方法,在win11系统中找到hosts文件添加如下内容 # hosts文件路径: C:\Windows\System32\drivers\etc 185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com # 验证 C:\Users\Lenovo>wsl --list --online 以下是可安装的有效分发的列表。 使用 'wsl.exe --install <Distro>' 安装。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS Ubuntu-24.04 Ubuntu 24.04 LTS OracleLinux_7_9 Oracle Linux 7.9 OracleLinux_8_7 Oracle Linux 8.7 OracleLinux_9_1 Oracle Linux 9.1 openSUSE-Leap-15.5 openSUSE Leap 15.5 SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4 SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5 openSUSE-Tumbleweed openSUSE Tumbleweed

问题2、wsl –install -d Ubuntu-20.04执行报错

# 解决方法 # 获取WSL2 Linux内核更新包 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

wsl1升级至wsl2

注意:

1、一般是比较老的系统默认是wsl1,新的系统现在基本默认都是wsl2,具体查看方式通过:wsl –status 命令查。

2、如果是wsl2的话,无需操作这一步

欢迎大家来到IT世界,在知识的湖畔探索吧!# 检查 WSL 状态(查看有关 WSL 配置的常规信息,例如默认发行版类型、默认发行版和内核版本。) wsl --status # 输出结果 默认版本: 1 # 该结果表示默认是wsl1,这时就需要下面的操作了 # 获取WSL2 Linux内核更新包(安装过就不用安装了)(为什么安装这个,官方文档中有,可自行去看) https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi # 将 WSL2 设置为默认版本 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

迁移安装的linux分发版

# 终止正在运行的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执行上面的命令
win11安装wsl以及升级到wsl2和安装docker

安装Docker Desktop(先看下一步)

win11安装wsl以及升级到wsl2和安装docker

win11安装wsl以及升级到wsl2和安装docker

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

注意:如果软件更新了,这个就会失效,因为软件更新会先卸载在安装,在卸载过程中会删除C:\Program Files\Docker目录,这样下方执行的软连接就会失效

欢迎大家来到IT世界,在知识的湖畔探索吧!# Docker Desktop默认安装位置 C:\Program Files\Docker # 需要是管理员权限 # 建立软连接的命令如下:(再没安装之前执行)使用Windows PowerShell会报错,使用 命令提示符 没事(如下图), mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker" # 看一下对应目录有没有文件夹, C盘的没有不用管,D盘下没有就创建一下
win11安装wsl以及升级到wsl2和安装docker

win11安装wsl以及升级到wsl2和安装docker

Docker-Desktop储存路径更改

方式一(推荐)

win11安装wsl以及升级到wsl2和安装docker

方式二(老版本最初软件没有提供修改时用的方法)

Docker Desktop的默认存储路径 C:\Users${用户文件}\AppData\Local\Docker

# docker-desktop:保存的是程序 docker-desktop 主要保存的是Docker Desktop本身及其依赖的服务程序,这部分通常指的是Docker引擎以及为了支持Docker在Windows上运行所需要的其他配套软件和服务。 # docker-desktop-data: 保存的镜像 docker-desktop-data 则主要用于保存Docker所使用的实际数据,尤其是容器镜像、容器的可写层、容器数据卷以及其他持久化的数据。当您在Docker中拉取、构建或运行容器时,产生的镜像和容器状态都会存储在这个环境中。因此,当我们谈论镜像存储位置时,docker-desktop-data 所对应的文件系统区域就是存储这些镜像和其他重要数据的地方。对于需要迁移镜像存储位置或进行备份的情况,通常会针对docker-desktop-data 进行操作。 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退出,确保状态是关闭状态 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 E:\wsl2\docker\docker-desktop E:\wsl2\docker\docker-desktop.tar --version 2 wsl --import docker-desktop-data E:\wsl2\docker\docker-desktop-data E:\wsl2\docker\docker-desktop-data.tar --version 2

win系统安装docker容器需要注意本机端口是否被使用,如果被使用了映射的时候就没法用了

欢迎大家来到IT世界,在知识的湖畔探索吧!# 查看所有连接的监听的端口 netstat -ano # 排查是否有程序占用了9091端口 netstat -ano | findstr 9091 # 通过cmd命令查看哪些端口被禁用TCP协议 netsh interface ipv4 show excludedportrange protocol=tcp

问题3、启动linux分发出现“参考的对象类型不支持尝试的操作”字样

# 出现 参考的对象类型不支持尝试的操作。 Press any key to continue... # 解决 # 使用(管理员)执行: netsh winsock reset

wsl命令

欢迎大家来到IT世界,在知识的湖畔探索吧!# 关闭(立即终止所有运行的分发及 WSL2) wsl --shutdown # 列出已安装的 WSL 分发版本 wsl --list wsl -l # 安装 WSL 和 Linux 的默认 Ubuntu 发行版 wsl --install # 选项包括: --distribution , -d:指定要安装的 Linux 发行版。 可以通过运行 wsl --list --online 来查找可用的发行版。 --no-launch , -n:安装 Linux 发行版,但不自动启动它。 --web-download:通过联机渠道安装,而不是使用 Microsoft Store 安装。 # 未安装 WSL 时,选项包括: --inbox:使用 Windows 组件(而不是 Microsoft Store)安装 WSL。 (WSL 更新将通过 Windows 更新接收,而不是通过 Microsoft Store 中推送的可用更新来接收)。 --enable-wsl1:在安装 Microsoft Store 版本的 WSL 的过程中也启用“适用于 Linux 的 Windows 子系统”可选组件,从而启用 WSL 1。 --no-distribution:安装 WSL 时不安装发行版。 # 运行指定分发 wsl --distribution <Linux 发行版的名称> wsl -d <Linux 发行版的名称> # 列出可用的 Linux 发行版 wsl --list --online # 列出已安装的 Linux 发行版 wsl --list --verbose # 更改指定分发的版本(1 或 2) wsl --set-version <Linux 发行版的名称> <版本> # 设置默认 WSL 版本(1 或 2) wsl --set-default-version <版本> # 设置默认 Linux 发行版(若要设置 WSL 命令将用于运行的默认 Linux 发行版,请将 <Distribution Name> 替换为你首选的 Linux 发行版的名称。) wsl --set-default <Linux 发行版的名称> wsl -s <Linux 发行版的名称> # 将目录更改为主页(~ 可与 wsl 一起使用,以在用户的主目录中启动。 若要在 WSL 命令提示符中从任何目录跳回到主目录,可使用命令 cd ~。) wsl ~ # 通过 PowerShell 或 CMD 运行特定的 Linux 发行版 wsl --distribution <Linux 发行版的名称> --user <用户的名称:例如 root> # 更新 WSL(更新内核版本 ) wsl --update # 选项: --web-download:从 GitHub 而不是 Microsoft Store 下载最新更新。 # 检查 WSL 状态 wsl --status # 查看内核版本 wsl --version wsl -v # Help 命令 wsl --help # 以特定用户的身份运行(若要以指定用户身份运行 WSL,请将 <Username> 替换为 WSL 发行版中存在的用户名。) wsl --user <Username> # 更改发行版的默认用户(更改用于发行版登录的默认用户。 用户必须已经存在于发行版中才能成为默认用户。) <Linux 发行版的名称> config --default-user <Username> # 例如:ubuntu config --default-user johndoe 会将 Ubuntu 发行版的默认用户更改为“johndoe”用户。 # 导出分发版(将指定分发版的快照导出为新的分发文件。 默认为 tar 格式。 在标准输入中,文件名可以是 -。 选项包括:) wsl --export <Linux 发行版的名称> <FileName> 例如:wsl --export Ubuntu-20.04 D:\Ubuntu.tar # 选项 --vhd:指定导出分发版应为 .vhdx 文件而不是 tar 文件(这仅在使用 WSL 2 的情况下受支持) # 导入分发版 wsl --import <Linux 发行版的名称> <InstallLocation> <FileName> 例如1:wsl --import Ubuntu-20.04 D:\Ubuntu_2004 D:\Ubuntu.tar 例如2:wsl --import Ubuntu-20.04 D:\Ubuntu_2004 D:\Ubuntu.tar --version 2 # 选项: --vhd:指定导入分发版应为 .vhdx 文件而不是 tar 文件(这仅在使用 WSL 2 的情况下受支持) --version <1/2>:指定将分发版导入为 WSL 1 还是 WSL 2 分发版 # 注销或卸载 Linux 发行版(尽管可以通过 Microsoft Store 安装 Linux 发行版,但无法通过 Store 将其卸载。) wsl --unregister <Linux 发行版的名称> 例如: wsl --unregister Ubuntu-20.04 # Terminate(终止指定的发行版或阻止其运行) wsl --terminate <Linux 发行版的名称> wsl -t <Linux 发行版的名称> # 就地导入发行版(将指定的 .vhdx 文件导入为新的发行版。 虚拟硬盘必须采用 ext4 文件系统类型格式。) wsl --import-in-place <Linux 发行版的名称> <FileName> # 用之前看一下这个官方文档 注意:https://learn.microsoft.com/zh-cn/windows/wsl/wsl2-mount-disk # 装载磁盘或设备 wsl --mount <DiskPath> # 选项: --vhd:指定 <Disk> 引用虚拟硬盘。 --name:使用装入点的自定义名称装载磁盘 --bare:将磁盘附加到 WSL2,但不进行装载。 --type <Filesystem>:装载磁盘时使用的文件系统类型默认为ext4(如果未指定)。此命令也可输入为:wsl --mount -t <Filesystem>。可以使用blkid <BlockDevice> 命令检测文件系统类型,例如:blkid <dev/sdb1>。 --partition <Partition Number>:要装载的分区的索引号默认为整个磁盘(如果未指定)。 --options <MountOptions>:装载磁盘时,可以包括一些特定于文件系统的选项。 例如,wsl --mount -o "data-ordered" 或 wsl --mount -o "data=writeback 之类的 ext4 装载选项。 但是,目前仅支持特定于文件系统的选项。 不支持通用选项,例如 ro、rw 或 noatime。 # 卸载磁盘(卸载磁盘路径中给定的磁盘,如果未提供磁盘路径,则此命令将卸载并分离所有已装载的磁盘。) wsl --unmount <DiskPath> # 标识 IP 地址 wsl hostname -i # 标识通过 WSL 2 安装的 Linux 分发版 IP 地址(WSL 2 VM 地址) cat /etc/resolv.conf # 表示从 WSL 2 看到的 WINDOWS 计算机的 IP 地址 (WSL 2 VM)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/101367.html

(0)
上一篇 50分钟前
下一篇 35分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信