Windows 安装 WSL 并集成 Docker
文章目录
- 一、简介
- 二、安装 WSL
- 三、集成 Docker
- 小结
一、简介
适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。因为微软官方已经提供了完善的介绍和配置文档,所以我这里仅供参考,请以官方文档为准。在安装前请明确系统版本要求。另外,推荐在微软商店中下载安装 Windows Terminal,这是一个很好用的开源终端工具。

二、安装 WSL
-
以管理员身份启动
powershell,通过命令行启用windosw里可选功能。执行如下指令,启用 Windows Subsystem for Linux (WSL),让 Windows 支持运行 Linux 用户态程序(主要用于 WSL 1),如果只想使用 WSL 1,执行重启之后,可以直接安装所需的系统发行版。否则执行后无需立即重启。dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
如果是Windows 10,对于 x64 系统,WSL 2 要求系统版本为 1903 或更高,内部版本为 18362.1049 或更高;对于 ARM64 系统则要求 2004 或更高,内部版本为 19041 或更高。或者直接使用 Windows 11。详情可以参考官方介绍。若要检查 Windows 版本及内部版本号,使用
win+R,并输入winver回车后会弹出相应界面。

-
如果想要使用 WSL 2,继续执行如下指令,启用虚拟机平台,提供轻量级虚拟化支持,是 WSL 2 运行完整 Linux 内核的前提。这里默认我们的系统满足其最低版本要求。
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
执行完上述两个
dism命令启动子系统及虚拟机之后,需要重启计算机生效。除了使用上述指令开启windows可选功能之外,也可以在控制面板中,通过程序和功能开启同样的功能并重启计算机,这里如果有Hyper-V也可以一并开启。

-
Windows 11 系统可以直接通过指令在线更新 WSL 2 的 Linux内核 到最新版本。对于Windows 10 系统如果不能通过指令更新,可以使用离线安装的方法下载
.msi文件并双击运行。官方提供了适用于 x64的内核更新包 以及 ARM64的内核更新包,请根据架构类型选择合适的内核更新包。wsl --update
-
在
PowerShell中可以通过如下指令查看 WSL 相关的版本信息。wsl --version
-
打开
PowerShell并运行以下命令,在安装新的 Linux 发行版时将 WSL 2 设置为默认版本,推荐使用 WSL 2,因为其完整的 Linux 内核支持。wsl --set-default-version 2 # 1 同理
-
在
PowerShell中通过如下指令查看可安装的系统发行版,也可以在微软商店中搜索相关系统的发行版本进行安装。wsl --list --online

-
在
PowerShell中使用命令行安装需要的系统版本,以Ubuntu-24.04为例。安装完成后会提示创建用户名及密码,创建后会直接进入Linux系统。而在微软商店中安装的系统需要在terminal中手动启动。wsl --install -d Ubuntu-24.04

-
在
PowerShell中通过如下指令将某一个 Linux 发行版从 WSL 1 升级到 WSL 2 或从 WSL 2 降级到 WSL 1,以Ubuntu-18.04为例。wsl --set-version Ubuntu-18.04 1
-
在
PowerShell中通过如下指令列出已安装的Linux发行版,查看系统状态和相应的WSL版本。wsl -l -v # wsl --list --verbose
-
当安装多个不同的系统发行版之后,可以通过如下指令在
PowerShell设置输入wsl之后默认启动的系统,这里以Ubuntu-24.04为例。wsl --set-default Ubuntu-24.04
-
若要在不更改默认启动的情况下在
PowerShell中运行特定的发行版,可以按照如下方式启动,同样以Ubuntu-24.04为例。wsl --distribution Ubuntu-24.04
-
通过上述方法安装的系统都是安装在C盘,如果想要安装到其他盘中,可以先将系统导出为 tar 文件,这里以
Ubuntu-24.04为例,导出到d:/ubuntu24.tar文件中。wsl --export Ubuntu-24.04 d:/ubuntu24.tar -
导出后,需要注销当前的Linux发行版。
wsl --unregister Ubuntu-24.04 -
重新导入并安装到D盘ubuntu目录下。
wsl --import Ubuntu-24.04 d:/ubuntu d:/ubuntu24.tar --version 2 # wsl --import <导入Linux名称> <安装位置> <tar包路径> 版本(wsl) -
一般完成迁移以后,WSL默认以root账户登录,在
PowerShell中执行如下指令更改默认登录账户为ubuntu。ubuntu2404 config --default-user ubuntu -
可以通过如下指令进一步确认安装位置,这里以
Ubuntu-24.04为例。(Get-ChildItem -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" | Where-Object {$_.GetValue("DistributionName") -eq "Ubuntu-24.04"}).GetValue("BasePath")
三、集成 Docker
- 在 WSL 版本 1 中,由于 Windows 和 Linux 之间存在根本差异,Docker 引擎无法直接在 WSL 内部运行,因此 Docker 团队使用 Hyper-V VM 和 LinuxKit 开发了替代解决方案。 但是,由于 WSL 2 现在在具有完整系统调用容量的 Linux 内核上运行,因此 Docker 可以在 WSL 2 中完全运行。 这意味着 Linux 容器可以在不仿真的情况下本机运行,从而提高 Windows 和 Linux 工具之间的性能和互作性。详细信息可以参考微软官网介绍。
- 下载 Docker Desktop 并在安装的时候选择适用于 Windows 的 Docker Desktop 支持的 WSL 2 后端,可以在基于 Linux 的开发环境中工作并生成基于 Linux 的容器。

- 安装完成之后,打开Docker Desktop面板找到 设置(Settings),确保在 通用(General)中开启 使用基于 WSL 2 的引擎(Use the WSL 2 based engine)

- 在 资源(Resources)中找到 WSL集成(WSL integration)选择要启用 Docker 集成的已安装 WSL 2 分发版。这里勾选 默认 和需要的分发版与 Docker 集成。

- 这里以
Ubuntu-24.04为例,进入系统执行docker version,如果客户端和服务端信息显示正常,则 Docker引擎 正常。

小结
上述内容均来自微软官方及个人实践,同样还有其他不错的关于WSL的博文可供参考,如有其他问题欢迎在评论区讨论,谢谢!!
