一、环境准备
1. 确认 Windows 功能已开启
打开 "控制面板 → 程序 → 启用或关闭 Windows 功能"
勾选 "适用于 Linux 的 Windows 子系统" 和 "虚拟机平台"

点"确定"后重启电脑。
开机后,管理员模式打开 Terminal, 启用 WSL 和支撑 WSL2 所需的虚拟机平台组件。
bash
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

再次重启电脑。
2. 更新和升级 WSL2 内核
- 下载安装包:从微软官方网站下载 WSL2 Linux 内核更新包
- 安装完成后,在 Terminal(管理员)中运行:
bash
wsl --update
wsl --set-default-version 2
如果你还没安装任何 Linux 发行版,可以直接运行:
bash
wsl --install
3. 检查 WSL 发行版状态
在 Terminal(管理员)里输入:
bash
wsl --list --verbose
可以看到已经安装的 Linux 发行版:
NAME STATE VERSION
Ubuntu Stopped 2
docker-desktop Stopped 2
docker-desktop-data Stopped 2
如果你还没安装任何 Linux 发行版,可以直接运行:
bash
wsl --install
这会自动安装 Ubuntu 并设置 WSL2 为默认。

二、安装 Docker Desktop
1. 官网下载安装 Docker Desktop
- 从 Docker 官网 下载并安装最新版。
- 安装过程中勾选 "Use WSL 2 based engine",并完成向导重启。

2. Docker Engine 配置镜像源
打开 Docker Desktop,进入设置页面 (齿轮图标) ,编辑 Docker Engine 为下面内容:
json
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"experimental": false,
"features": {
"buildkit": true
},
"insecure-registries": [
"https://hub.atguigu.com"
],
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://cr.console.aliyun.com/",
"https://mirror.ccs.tencentyun.com"
]
}

3. Docker Desktop 与 WSL 集成
打开设置的 Resources 页面。
打开 WSL integration 页面,勾选 Enable integration with my default WSL distro 选项。

然后检查 Advanced 页面内是否提示:You are using the WSL 2 backend。显示这个说明我们已经集成上了 WSL。
这里要求已安装至少一个 Linux 发行版(如 Ubuntu),如果没有安装,需要参考 环境准备 完成安装。
三、创建开发镜像
1. 编写 Dockerfile 脚本
通过编写 Dockerfile,可以在镜像里预装编译器、依赖包、工具链等,一次构建、随处可复用。
我们需要创建一个目录作为Docker的运行目录(如 D:\Tools\Docker\my-dev),然后在运行目录下面创建一个 Dockerfile 文件,粘贴以下内容:
bash
# 1. 基础镜像
FROM ubuntu:22.04
# 关闭交互提示
ENV DEBIAN_FRONTEND=noninteractive
# 3. 替换为国内 HTTP 源,避免 ca-certificates 未安装时的证书校验错误
RUN sed -i 's|http://.*.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list \
&& sed -i 's|http://security.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list
# 4. 更新索引并安装必备包(含 ca-certificates),遇到下载错误时重试 3 次并跳过缺失包
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
build-essential \
git \
curl \
vim \
python3 \
python3-pip \
nodejs \
npm \
--fix-missing \
-o Acquire::Retries=3 \
&& rm -rf /var/lib/apt/lists/*
# 可选:更换回官方 HTTPS 源(此时已有 ca-certificates,可校验证书)
# RUN sed -i 's|http://mirrors.aliyun.com|https://archive.ubuntu.com|g' /etc/apt/sources.list
# 4. 创建一个非 root 用户,避免容器内文件权限问题
ARG USERNAME=dev
ARG UID=1000
RUN useradd -m -u ${UID} -s /bin/bash ${USERNAME} \
&& apt-get update \
&& apt-get install -y sudo \
&& echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
&& rm -rf /var/lib/apt/lists/*
# 5. 切换到普通用户
USER ${USERNAME}
# 6. 工作目录
WORKDIR /workspace
# 7. 默认启动 shell
CMD ["bash"]
2. 构建镜像
打开 Terminal 切到该目录:
bash
mkdir D:\Tools\Docker\my-dev
cd D:\Tools\Docker\my-dev
这里我为了防止一次性构建时拉取 ubuntu:22.04 时间过长,所以先手动拉下来。
bash
docker pull ubuntu:22.04
然后构建镜像(给它起个易记的名字,比如 ubuntu-demo):
bash
docker build -t ubuntu-demo .
其中,-t ubuntu-demo 是给镜像命名,. 表示在当前目录作为构建上下文,Dockerfile 也在这里。

3. 运行开发容器
把本地项目(或任意代码目录)挂载到容器中,保持代码与容器内同步。
bash
docker run -it --rm --name ubuntu-dev -v D:\Tools\Docker\my-dev:/workspace -w /workspace ubuntu-demo
--rm:退出后自动删除容器-v 本地目录:容器目录:映射代码-w /workspace:进入容器后的工作路径
此时,你将进入容器的 bash,且 /workspace 下即是 Windows 里的 my-dev。

4. 容器内验证
进入容器后可执行:
bash
# 验证基础工具
git --version
gcc --version
python3 --version
npm --version
# 测试 sudo
sudo echo "sudo OK"
确保一切都正常。
