跳过正文

Windows 11 WSL2 容器开发环境配置

Windows Docker WSL 2 Dev Environment Linux Ubuntu
Luoqxi
作者
Luoqxi
洛琪希 神!
目录
部署教程 - 这篇文章属于一个选集。
§ 13: 本文

前提
#

之前经常使用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基本是一致。

  1. 下载并安装Docker Desktop点此下载,安装的时候选择WSL 2后端,安装完成后可能需要重启或者注销。

  2. 在Docker Desktop中配置WSL 2后端,选择Ubuntu。

Ubuntu

  1. 在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扩展。

  1. 首先通过Ubuntu子系统与Windows主机之间的文件系统共享,把需要开发的项目Clone到子系统内部。
\\wsl.localhost\Ubuntu\home\lqx\proj
  1. 通过Cmd终端进入到项目目录,执行code .命令,启动VSCode,这时候VSCode在本地 WSL 扩展服务器上运行项目,通过VSCode左下角的绿色远程指示器,确认已连接到 WSL Linux 发行版。

  2. 添加devcontainer配置(有如下两种方式):

a、 Ctrl + Shift + P打开命令面板,选择Remote-Containers: Add Development Container Configuration Files。

b、选择合适的开源的devcontainer模板

放至目标目录.devcontainer/devcontainer.json

  1. 从 VS Code 命令面板 (Ctrl + Shift + P),输入:开发容器: 在容器中重新打开文件夹,VSCode会自动构建容器。

如果碰到Image下载不下来的情况,可以手动docker pull镜像。

  1. 检查容器运行状态。

a、VSCode左下角在一切成功之后会显示容器名称,如图:

远程指示器

b、Docker Desktop中查看镜像状态,如图:

查看镜像状态

c、在WSL 2 Ubuntu中查看容器状态,如图:

查看容器状态

参考资料
#

部署教程 - 这篇文章属于一个选集。
§ 13: 本文