Windows 11 下 WSL2 实战:从 D 盘部署 Ubuntu 到 Docker 开发环境一站式搭建

张开发
2026/4/16 19:30:07 15 分钟阅读

分享文章

Windows 11 下 WSL2 实战:从 D 盘部署 Ubuntu 到 Docker 开发环境一站式搭建
1. 为什么选择 WSL2 Ubuntu Docker 组合如果你是一名 Windows 开发者却经常需要接触 Linux 环境下的开发工作那么 WSL2 绝对是你的福音。相比传统的虚拟机方案WSL2 提供了近乎原生的性能体验而且资源占用更低。再加上 Docker 的容器化支持你可以在 Windows 11 上轻松构建一个完整的 Linux 开发环境。我自己的主力开发机就是 Windows 11 WSL2 的组合。之前尝试过各种双系统、虚拟机方案要么切换麻烦要么性能堪忧。直到用了 WSL2才发现原来鱼和熊掌真的可以兼得。特别是把 Ubuntu 安装到 D 盘这个操作直接拯救了我那可怜的 256GB C 盘空间。2. 准备工作与环境检查2.1 系统要求确认在开始之前先确认你的 Windows 11 是否符合以下要求版本号 2004 或更高内部版本 19041 或更高已启用虚拟化功能可以在任务管理器 - 性能选项卡中查看至少 4GB 内存8GB 以上更佳我遇到过不少同学因为系统版本太老导致安装失败的情况。建议先运行winver命令检查系统版本如果版本太低先去 Windows 更新升级系统。2.2 启用 WSL 相关功能WSL2 需要一些 Windows 功能支持可以通过管理员权限的 PowerShell 启用dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart执行完记得重启电脑。这里有个小技巧如果你之前安装过 WSL1建议先运行wsl --set-default-version 2将默认版本设为 WSL2。3. 安装 Ubuntu 到 D 盘完整流程3.1 下载并安装 Ubuntu 发行版官方推荐的方法是直接使用wsl --install命令但我们要定制安装位置所以采用更灵活的方式# 查看可用的发行版 wsl --list --online # 安装指定版本这里以 Ubuntu 22.04 为例 wsl --install -d Ubuntu-22.04安装过程中会提示你创建用户名和密码这个账号将拥有 sudo 权限。我建议密码不要设得太复杂因为后续在终端里会经常用到。3.2 将 WSL 迁移到 D 盘默认安装位置在 C 盘我们要把它迁移到 D 盘。这个操作需要几个步骤首先停止正在运行的发行版wsl --terminate Ubuntu-22.04导出发行版到临时文件wsl --export Ubuntu-22.04 D:\wsl-ubuntu-22.04.tar注销原发行版wsl --unregister Ubuntu-22.04导入到新位置wsl --import Ubuntu-22.04 D:\WSL\Ubuntu-22.04 D:\wsl-ubuntu-22.04.tar --version 2设置默认用户否则会以 root 登录ubuntu2204 config --default-user 你的用户名迁移完成后可以通过以下命令检查安装位置Get-ItemProperty Registry::HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\* | Select-Object DistributionName, BasePath4. 配置 Ubuntu 开发环境4.1 基础软件包更新首次进入 Ubuntu 环境建议先更新软件包sudo apt update sudo apt upgrade -y这个步骤可能会花费一些时间取决于你的网络状况。我在公司内网环境下经常遇到更新慢的问题这时候可以考虑换源sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list4.2 安装常用开发工具根据你的开发需求安装必要的工具链。以下是我的标配sudo apt install -y build-essential git curl wget zsh vim如果你像我一样是 Zsh 爱好者可以继续配置 Oh My Zshsh -c $(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)5. 图形界面支持配置5.1 安装 X ServerWSL2 本身没有图形界面但可以通过 X Server 实现 GUI 应用的支持。我推荐使用 VcXsrv在 Windows 端下载安装 VcXsrv启动 XLaunch选择 Multiple windowsDisplay number 设为 0勾选 Disable access control重要5.2 配置 Ubuntu 端的 DISPLAY在 Ubuntu 终端中执行echo export DISPLAY$(cat /etc/resolv.conf | grep nameserver | awk {print $2}):0 ~/.bashrc source ~/.bashrc现在可以测试安装一个 GUI 应用试试sudo apt install -y gedit gedit如果一切正常你应该能看到 gedit 窗口弹出。6. Docker 环境安装与配置6.1 安装 Docker 引擎WSL2 中的 Docker 安装与普通 Ubuntu 略有不同# 卸载旧版本 sudo apt remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # 添加 Docker 官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 设置稳定版仓库 echo deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装 Docker 引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io6.2 配置 Docker 服务WSL2 使用自己的 init 系统所以不能用 systemctl# 启动 Docker 服务 sudo service docker start # 设置开机自启需要每次 WSL 启动时运行 echo sudo service docker start ~/.bashrc6.3 配置非 root 用户使用 Docker为了避免每次都要加 sudosudo groupadd docker sudo usermod -aG docker $USER newgrp docker测试 Docker 是否正常工作docker run hello-world6.4 配置镜像加速国内用户建议配置镜像加速sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://mirror.ccs.tencentyun.com] } EOF sudo service docker restart7. 开发环境验证与优化7.1 测试 Python 开发环境让我们用一个简单的 Python 项目测试环境mkdir python-test cd python-test echo print(Hello from WSL2!) hello.py python3 hello.py如果需要更完整的 Python 环境sudo apt install -y python3-pip python3-venv python3 -m venv venv source venv/bin/activate pip install --upgrade pip7.2 配置 VS Code 远程开发VS Code 的 WSL 远程开发体验非常棒在 Windows 上安装 VS Code安装 Remote - WSL 扩展在 Ubuntu 中进入项目目录运行code .这样你就可以在 Windows 上使用 VS Code 编辑 WSL 中的文件了所有扩展都会自动安装在 WSL 环境中。7.3 性能优化建议经过几个月的使用我总结了一些优化技巧将项目文件放在 WSL 文件系统中不要放在 /mnt/c/ 下在 Docker 设置中增加内存限制特别是运行大型容器时定期清理 Docker 资源docker system prune -f使用 .wslconfig 文件配置 WSL2 资源限制在 C:\Users\你的用户名\ 下创建[wsl2] memory6GB processors4 localhostForwardingtrue8. 常见问题解决8.1 网络连接问题WSL2 使用虚拟网络有时会出现网络问题。如果遇到# 重置 WSL 网络 wsl --shutdown8.2 Docker 端口无法访问如果 Windows 无法访问 WSL2 中 Docker 暴露的端口可以这样解决# 在 Ubuntu 中获取 IP hostname -I然后在 Windows 浏览器中访问WSL2_IP:PORT8.3 文件系统性能问题/mnt/c 下的文件 IO 性能较差建议将项目文件放在 WSL2 自己的文件系统中如 ~/projects或者使用wsl.conf优化挂载选项sudo tee /etc/wsl.conf EOF [automount] options metadata,umask22,fmask11 EOF这套环境我已经使用了半年多从简单的脚本开发到复杂的微服务项目都能胜任。特别是 Docker 集成非常顺畅再也不用为环境不一致的问题头疼了。刚开始可能会遇到一些小问题但一旦配置完成你就会发现这个组合的强大之处。

更多文章