Windows 11 WSL2 容器开发环境配置
前提
之前经常使用VS Code + 远程服务器/容器开发,这种方式虽然很方便,但也容易受网络波动影响。最近正好有一台闲置的Windows 11主机,故打算使用WSL2子系统在本地构建一个开发环境,这里顺带记录下。
安装 WSL 命令
可以命令行中输入以下命令,安装WSL2
wsl --install
或者在Windows功能中启用WSL2,在开始菜单中搜索“Windows功能”,勾选“适用于Linux的Windows子系统”和“虚拟机平台”,安装完成后可能需要重启。
检查WSL2状态:
wsl --status
WSL 常用命令
wsl --help
可能需要执行update命令:
wsl --update
查看可安装的有效分发的列表:
wsl --list --online
有效的分发列表:
C:\Users\bmm>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.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed openSUSE Tumbleweed
WSL 2 安装 Ubuntu
wsl --install -d Ubuntu
安装完成后需要输入账号和密码。通过df -h命令查看磁盘空间,注意其中的/mnt/c、/mnt/d、/mnt/e等目录,这些是Windows的磁盘挂载点。
lqx@bmm:~$ df -h
Filesystem Size Used Avail Use% Mounted on
none 7.8G 0 7.8G 0% /usr/lib/modules/5.15.153.1-microsoft-standard-WSL2
none 7.8G 4.0K 7.8G 1% /mnt/wsl
drivers 293G 111G 182G 38% /usr/lib/wsl/drivers
/dev/sdc 1007G 1.2G 955G 1% /
none 7.8G 76K 7.8G 1% /mnt/wslg
none 7.8G 0 7.8G 0% /usr/lib/wsl/lib
rootfs 7.8G 2.2M 7.8G 1% /init
none 7.8G 508K 7.8G 1% /run
none 7.8G 0 7.8G 0% /run/lock
none 7.8G 0 7.8G 0% /run/shm
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
none 7.8G 72K 7.8G 1% /mnt/wslg/versions.txt
none 7.8G 72K 7.8G 1% /mnt/wslg/doc
C:\ 293G 111G 182G 38% /mnt/c
D:\ 293G 164G 130G 56% /mnt/d
E:\ 346G 313G 34G 91% /mnt/e
tmpfs 1.6G 16K 1.6G 1% /run/user/1000
WSL 2 + Docker
推荐使用Docker Desktop,WSL 2作为后端,参考Docker Desktop for Windows 中支持的 WSL 2 后端,当然也可以在WSL2 Ubuntu中安装Docker。那么就需要参考Install Docker Engine on Ubuntu,这种方式跟我们平常Windows使用VMWare安装Ubuntu,然后安装Docker基本是一致。
-
下载并安装Docker Desktop点此下载,安装的时候选择WSL 2后端,安装完成后可能需要重启或者注销。
-
在Docker Desktop中配置WSL 2后端,选择Ubuntu。
- 在WSL 2 Ubuntu中验证下Docker,
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
lqx@bmm:~$ docker --version
Docker version 27.2.0, build 3ab4256
使用 VS Code 在远程容器中开发
首先需要在VS Code安装 WSL、Dev Containers、Docker扩展。
- 首先通过Ubuntu子系统与Windows主机之间的文件系统共享,把需要开发的项目Clone到子系统内部。
\\wsl.localhost\Ubuntu\home\lqx\proj
-
通过Cmd终端进入到项目目录,执行code .命令,启动VSCode,这时候VSCode在本地 WSL 扩展服务器上运行项目,通过VSCode左下角的绿色远程指示器,确认已连接到 WSL Linux 发行版。
-
添加devcontainer配置(有如下两种方式):
a、 Ctrl + Shift + P打开命令面板,选择Remote-Containers: Add Development Container Configuration Files。
b、选择合适的开源的devcontainer模板。
放至目标目录.devcontainer/devcontainer.json
- 从 VS Code 命令面板 (Ctrl + Shift + P),输入:开发容器: 在容器中重新打开文件夹,VSCode会自动构建容器。
如果碰到Image下载不下来的情况,可以手动docker pull镜像。
- 检查容器运行状态。
a、VSCode左下角在一切成功之后会显示容器名称,如图:
b、Docker Desktop中查看镜像状态,如图:
c、在WSL 2 Ubuntu中查看容器状态,如图: