WSL2 + Docker Desktop 开发环境配置:Windows 11 一次搞定 Linux、容器与排错

适用人群与目标

如果你想在 Windows 11 上同时获得「原生 Windows 软件 + Linux 开发环境 + 容器化工具链」的组合,WSL2 + Docker Desktop 是一条成本最低、迁移最顺滑的路线。本文按“能跑起来 + 好用 + 便于排错”的顺序整理,适合:前端/后端/数据开发、需要跑数据库/缓存/中间件、希望用 Linux 工具链但不想装双系统的人。

开始前检查:虚拟化与系统组件

1)BIOS/UEFI 打开虚拟化(Intel VT-x / AMD-V)。若你不确定是否开启:任务管理器 → 性能 → CPU,查看“虚拟化:已启用”。

2)Windows 功能建议启用:适用于 Linux 的 Windows 子系统虚拟机平台。如果你习惯命令行,可用管理员 PowerShell 执行:wsl --install(新版本会自动处理大部分组件)。

3)更新到较新的 Windows 11 版本与补丁,能显著减少 WSL2/网络/内核相关的奇怪问题。

安装与初始化 WSL2(推荐最短路径)

1)管理员 PowerShell:wsl --install,按提示重启。

2)安装发行版(如 Ubuntu)。首次启动会让你创建 Linux 用户名与密码。建议用户名不要用中文或空格。

3)把 WSL 默认版本设为 2(如果需要):wsl --set-default-version 2。

4)验证:运行 wsl -l -v,看到你的发行版 VERSION=2 即正常。

Windows Terminal 与基础体验优化

1)建议装 Windows Terminal(微软商店/winget 均可),把常用的 Ubuntu Profile 固定到顶部。

2)把项目尽量放在 Linux 文件系统里(例如 \wsl$\Ubuntu\home\你的用户 对应的目录)。把大项目放在 Windows 盘再由 WSL 访问,容易遇到性能下降与文件监听不稳定。

3)Git/Node/Python 等工具链:优先在 Linux 侧安装,以减少路径/权限/换行符差异导致的问题。

安装 Docker Desktop 并启用 WSL2 引擎

1)安装 Docker Desktop(官网下载安装包)。首次启动后进入 Settings:

2)General 中启用 “Use the WSL 2 d engine”。

3)Resources → WSL Integration:打开你要用的发行版(如 Ubuntu)。

4)验证:在 WSL 终端里执行 docker version 与 docker ps,能返回信息说明集成成功。

目录、权限与端口:最常见的坑一次说清

目录建议:代码与依赖(node_modules、venv、vendor)尽量在 Linux 侧;Docker 挂载目录也尽量用 Linux 路径(例如 /home/...)。这样文件权限、软链接、大小写敏感等行为更接近生产环境。

权限现象:如果你在容器里写文件后宿主侧提示无权限,通常是 UID/GID 不一致导致。优先用官方镜像的推荐方式(例如在 compose 里映射用户、或使用开发容器模式),不要用“全局 777”这种粗暴做法。

端口理解:容器端口暴露给 WSL2/Windows 时,优先走 Docker Desktop 的端口映射(compose 的 ports)。如果你遇到“Windows 能访问、手机/局域网不能访问”,先检查应用监听地址是否是 0.0.0.0,以及 Windows 防火墙是否放行。

快速排错清单(遇到问题先对照)

1)WSL 启动失败或报错 0x80370102:多半是虚拟化未开启、或系统组件不完整。先确认任务管理器虚拟化状态,再确认 Windows 功能已启用,必要时重启。

2)Docker Desktop 卡在启动/“WSL distro stopped”:先在 Windows 侧重启 Docker Desktop;再在管理员 PowerShell 执行 wsl --shutdown,重新打开发行版与 Docker。

3)容器访问网络异常:先确认是否启用了代理/VPN;再检查 Docker Desktop 的网络设置;最后用最小复现(如跑一个 nginx)排除是否是应用自身配置问题。

4)磁盘占用暴涨:定期清理无用镜像与构建缓存(例如 docker system df 查看占用,确认后再清理)。清理前务必确认不会误删仍在使用的卷。

推荐的日常工作流

1)代码在 WSL:编辑器可用 Windows 侧(如 VS Code)通过 WSL 插件打开目录。

2)依赖与脚本在 WSL:npm/pnpm、python 包、构建命令都在 Linux 侧执行。

3)服务用容器跑:数据库/缓存/消息队列用 docker compose 启动,减少“本机环境差异”。

4)遇到奇怪问题先缩小范围:WSL 是否正常 → Docker 是否正常 → 单个容器是否正常 → 应用配置是否正常。

结语

把 WSL2 当作你的“开发 Linux 主机”,把 Docker Desktop 当作“容器运行时与管理面板”,两者配合能在不改变 Windows 主力环境的前提下,获得更接近生产的开发体验。按本文完成后,你基本可以稳定地在 Windows 11 上跑起完整的容器化开发栈。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

暂无评论,快来抢沙发吧~

操作成功