你要解决什么问题?
在 Windows 11 上做前后端/AI 开发时,很多人会遇到这些痛点:Docker 装上了但跑不起来、WSL2 版本不对、镜像拉取慢、把项目放错目录导致 I/O 巨慢、容器里权限/换行符各种报错。下面按“先跑起来→再提速→最后排坑”的顺序整理一套稳定的搭建方法。
安装前检查(3分钟)
- 系统:建议 Windows 11 22H2+,并确保已开启虚拟化(BIOS/UEFI 中常见为 Intel VT-x / AMD-V)。
- 确认 WSL 状态(管理员 PowerShell):
wsl --status
wsl --version
- 如果机器是公司管控环境,先确认是否允许启用 WSL/Hyper-V(有的策略会阻断)。
安装 Docker Desktop(推荐官方安装器)
- 安装完成后,打开 Docker Desktop。
- 在设置中确认使用 WSL2 引擎(通常在 General/Resources 相关页面)。
- 首次启动如果提示需要更新 WSL,按提示执行更新并重启。
验证是否正常:
docker version
docker run --rm hello-world
把 WSL2 用对:发行版与资源设置
- 建议在 Microsoft Store 安装一个常用发行版(如 Ubuntu)。
- 在 Docker Desktop 的 WSL Integration 中,开启对应发行版的集成。
- 资源分配:如果你经常跑构建/数据库,可以适当增加 CPU/内存;但不要把内存拉满,留给 Windows 本体。
镜像拉取加速:先解决“慢”
镜像拉取慢通常不是 Docker 的问题,而是网络链路与镜像源。你可以用以下思路排查:
- 先用小镜像验证链路:docker pull alpine:latest
- 再拉常用镜像(如 node/python/nginx),观察是否卡在某个 registry。
- 在 Docker Desktop 的设置里配置镜像加速(以你网络环境可用的加速服务为准)。
小建议:在团队内统一一套镜像加速与基础镜像版本,能显著减少“我这能跑你那不行”的环境差异。
项目目录放哪里?性能差距巨大
很多“容器跑得慢”的根因是目录位置不对。一般经验是:
- 频繁 I/O 的项目(Node.js 依赖、Python 虚拟环境、前端构建产物)更适合放在 WSL2 的 Linux 文件系统中(例如发行版的 ~/projects)。
- 需要频繁用 Windows 软件直接编辑/同步的内容,可以放在 Windows 盘,但要接受部分 I/O 性能损失。
推荐做法:把代码放到 WSL2 内部目录,用 VS Code 的 Remote/WSL 模式打开;Docker 通过 WSL2 集成访问会更顺畅。
常见报错快速排查(对照清单)
- Docker Desktop 启动失败/卡住:先重启 WSL:wsl --shutdown,再重开 Docker Desktop。
- 容器网络异常:检查是否有代理软件/安全软件拦截;尽量不要在多个地方重复配置代理。
- 权限问题(Permission denied):确认容器内用户与挂载目录权限一致;避免把 Linux 目录挂到 Windows 受限路径。
- 换行符导致脚本不可执行:确保脚本使用 LF;在团队里统一 Git 的换行设置。
- 磁盘占用暴涨:定期清理无用镜像与构建缓存(谨慎使用清理命令,先确认不会误删重要镜像)。
最后的“稳定配置”建议
- 固定一个可复用的 docker compose 模板,把数据库/缓存/队列等基础设施一次搭好。
- 把“镜像加速、目录布局、VS Code 打开方式”写成团队 README,新人入职能省很多时间。
- 遇到问题先缩小变量:用 hello-world、alpine 这种最小镜像验证链路,再逐步叠加复杂度。