banner
约 1,800 字
6 分钟

Win11 安装 WSL2 + Docker 实战教程(官方正版,实测可用)

摘要

从零在 Windows 11 上安装 WSL2 与 Docker Desktop,并解决两个新手高频痛点:配置国内镜像加速解决拉取慢/超时,以及把 Docker 数据迁移到非系统盘避免 C 盘爆满,附常见问题排查表。

Win11 安装 WSL2 + Docker 实战教程(官方正版,实测可用)

引言

在 Windows 上做开发,WSL2(Windows Subsystem for Linux 2)+ Docker 是目前体验最好的组合之一:既能用上完整的 Linux 环境跑开发工具链,又能直接运行容器,还和 Windows 文件系统互通。

本文基于官方渠道、实测可用的流程,带你从零装好整套环境,并重点解决两个新手最容易踩的坑:

  • 国内镜像拉取慢/超时:默认从 Docker Hub 拉取,配置国内加速后实测秒级完成;

  • Docker 数据撑爆 C 盘:默认数据落在 C 盘,迁移到 D 盘彻底解放系统盘。

环境说明:Windows 11 专业版 / 家庭版均可,实测家庭版正常。

一、前置准备

1.1 硬件与系统要求

  • 系统:Windows 11(专业版 / 家庭版都支持)

  • CPU 虚拟化:需开启(多数机器默认已开)

  • 内存:至少 4GB,推荐 8GB 以上,避免运行卡顿

  • 网络:可正常访问互联网(下载官方安装包,无需代理)

1.2 检查 CPU 虚拟化是否开启

  1. Ctrl + Shift + Esc 打开任务管理器 → 切到「性能」→ 点左侧「CPU」;

  2. 看右侧「虚拟化」状态:显示「已启用」即可;若「已禁用」,需进 BIOS 开启(搜索“电脑品牌 + 开启 CPU 虚拟化”按机型操作)。

二、安装 WSL2(官方一键命令)

Win11 提供了一键安装命令,无需手动开功能、下载内核,全程自动完成,比旧版简单太多。

2.1 打开管理员终端

Win + X → 选「Windows 终端 (管理员)」(没有就选「Windows PowerShell (管理员)」),弹窗点「是」,标题栏出现「管理员」即进入管理员模式。

2.2 执行一键安装

powershell
wsl --install

该命令会自动完成三件事:开启 WSL 相关功能 → 下载 WSL2 内核 → 安装默认 Ubuntu 发行版。等待 5–15 分钟,按提示重启电脑。

2.3 初始化 Ubuntu

重启后打开 Ubuntu(开始菜单搜索),等待 1–2 分钟安装完成,设置用户名(小写)和密码(输入时不显示,记好,后续常用)。

2.4 验证安装成功

powershell
wsl -l -v

输出中 NAME=UbuntuSTATE=RunningVERSION=2 即表示 WSL2 安装成功且正常运行。

VERSION 显示 1,执行 wsl --set-default-version 2 后重启再查。

三、安装 Docker Desktop

Docker 官方提供 Windows 版 Docker Desktop,原生支持 WSL2 集成。

3.1 官方下载

访问 https://www.docker.com/products/docker-desktop/ ,点「Download for Windows」(安装包约 600MB)。

3.2 安装

双击安装包,保持默认勾选 Use WSL 2 instead of Hyper-V(正是所需),点 OK;安装完成后建议勾选「Start Docker Desktop when you log in」,Close and restart。

3.3 启动与验证

重启后 Docker 自动启动,桌面右下角鲸鱼图标变绿即运行正常。PowerShell 中验证:

powershell
docker --version

正常输出版本号(如 Docker version 29.3.1)即成功。

四、关联 WSL2 与 Docker(关键步骤)

要让 Ubuntu 终端里能直接用 docker 命令,必须手动开启 Docker 与 WSL2 的集成。

  1. Docker Desktop → Settings → Resources → WSL Integration

  2. 找到 Ubuntu,打开右侧开关 → Apply & restart

验证:

bash
docker --version
docker run hello-world

看到 Hello from Docker! 即互通成功。

可选优化:免 sudo

默认在 Ubuntu 里执行 docker 需加 sudo,加入 docker 用户组后可省略:

bash
sudo usermod -aG docker $USER
newgrp docker   # 刷新组权限,无需重启终端

五、配置国内镜像加速(必做)

Docker 默认从国外的 Docker Hub 拉取镜像,国内常慢甚至超时。替换镜像源后实测秒拉。

Docker Desktop → Settings → Docker Engine,把配置替换为:

JSON
{
  "builder": {
    "gc": { "defaultKeepStorage": "20GB", "enabled": true }
  },
  "experimental": false,
  "features": { "buildkit": true },
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://dockerproxy.com"
  ]
}

点击 Apply & restart 后验证:

bash
docker pull hello-world   # 几秒内完成即生效

提示:阿里云镜像需登录容器镜像服务后台获取专属加速地址,速度通常更稳。

六、Docker 数据迁移到 D 盘(避免 C 盘爆满)

Docker 默认把镜像、容器等数据存在 C:\Users\<用户>\AppData\Local\Docker\wsl。长期使用会悄悄吃满 C 盘,迁移到 D 盘最稳妥。

6.1 准备工作

  1. 右键鲸鱼图标 → Quit Docker Desktop,等待完全退出;

  2. 管理员 PowerShell 执行 wsl --shutdown

  3. 在 D 盘建目录 D:\ProgramData\Docker\wsl路径不要含中文或空格)。

6.2 迁移数据

C:\Users\<用户>\AppData\Local\Docker\wsl 剪切(不是复制)到 D:\ProgramData\Docker\wsl,等待完成。

6.3 创建符号链接

管理员 PowerShell 执行(把 <用户> 换成你的用户名):

powershell
New-Item -ItemType SymbolicLink `
  -Path "C:\Users\<用户>\AppData\Local\Docker\wsl" `
  -Target "D:\ProgramData\Docker\wsl"

成功后 Docker 仍以为数据在 C 盘,实际读的是 D 盘,C 盘空间立即释放。

若报 ResourceExists,说明 C 盘原 wsl 文件夹没剪切走,确认原路径下已无 wsl 文件夹再执行。

6.4 验证迁移

启动 Docker → docker run hello-world 正常 → 对比 C/D 盘空间,C 盘已释放、D 盘增加即成功。

七、常见问题排查

问题

原因

解决办法

wsl -l -v 显示 VERSION=1

默认版本未设为 2

wsl --set-default-version 2 后重启

Docker 启动报“WSL 2 集成异常”

集成未生效

wsl --shutdown → 重启 Docker → 重开 WSL 集成

执行 docker 提示 permission denied

当前用户不在 docker 组

执行第四节免 sudo 命令后重开终端

建符号链接报 ResourceExists

C 盘原 wsl 未删

确认已剪切走,原路径无 wsl 文件夹再执行

镜像加速后仍超时

JSON 格式错误 / 源失效

检查 JSON(无多余逗号)、换镜像源、重启 Docker

八、小结

整套流程跑完,你会得到一套完整、稳定、高效的本地环境:

  • WSL2 提供完整 Linux 环境,Docker 提供容器能力,两者互通;

  • 镜像拉取走国内加速,秒级完成;

  • 数据落在 D 盘,C 盘不再被悄悄吃满。

从此本地开发、部署、运维都能在这个统一环境里高效进行。如果后续想进一步把常用服务(数据库、中间件)也容器化,直接 docker compose 起一套即可,环境一致性远超手动安装。

延伸

  • Microsoft 官方《Install WSL》文档

  • Docker 官方《Install Docker Desktop on Windows》

  • 下一篇可聊:用 Docker Compose 一键编排本地开发环境

END

相关文章

暂无相关文章