什么是 WSL2?
WSL2(Windows Subsystem for Linux 2)是微软开发的一项技术,让你可以在 Windows 系统上运行完整的 Linux 环境,而无需安装虚拟机。相比于传统的虚拟机,WSL2 具有以下优势:
- 性能更好:比 WSL1 快了 2-5 倍
- 完整的 Linux 内核:支持所有 Linux 系统调用
- 文件系统性能优化:Linux 文件操作更快
- Docker 原生支持:可以直接运行 Docker 容器
- 资源占用少:比虚拟机消耗更少的内存和 CPU
安装前的准备工作
系统要求
确保你的系统满足以下要求:
- Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)
- 或者 Windows 11 任意版本
- 启用虚拟化功能
检查系统版本
按 Win + R
打开运行对话框,输入 winver
查看你的 Windows 版本:
版本应该是 2004 或更高
内部版本应该是 19041 或更高
WSL2 安装步骤
步骤 1:启用 WSL 功能
以管理员身份打开 PowerShell,运行以下命令:
# 启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
步骤 2:重启电脑
执行完上述命令后,重启你的电脑。
步骤 3:设置 WSL2 为默认版本
重启后,再次以管理员身份打开 PowerShell:
wsl --set-default-version 2
步骤 4:安装 Linux 发行版
有两种方式安装 Linux 发行版:
方式一:通过 Microsoft Store
- 打开 Microsoft Store
- 搜索 "Ubuntu" 或其他你喜欢的发行版
- 点击安装
推荐的发行版:
- Ubuntu 22.04 LTS:最流行,适合新手
- Debian:稳定可靠
- Alpine Linux:轻量级
方式二:通过命令行
# 查看可用的发行版
wsl --list --online
# 安装 Ubuntu
wsl --install -d Ubuntu-22.04
步骤 5:初始化 Linux 系统
安装完成后,启动 Linux 发行版:
- 设置用户名(建议使用小写字母)
- 设置密码(输入时不会显示,这是正常的)
- 等待初始化完成
WSL2 基本使用
启动和管理 WSL
# 启动默认的 Linux 发行版
wsl
# 启动特定发行版
wsl -d Ubuntu-22.04
# 查看已安装的发行版
wsl --list --verbose
# 关闭 WSL
wsl --shutdown
# 重启特定发行版
wsl --terminate Ubuntu-22.04
文件系统访问
从 Windows 访问 WSL 文件
在文件资源管理器地址栏输入:
\\wsl$\Ubuntu-22.04\home\你的用户名
从 WSL 访问 Windows 文件
Windows 的 C 盘挂载在:
/mnt/c/
例如,访问桌面:
cd /mnt/c/Users/你的用户名/Desktop
常用 Linux 命令
# 更新软件包列表
sudo apt update
# 升级已安装的软件包
sudo apt upgrade
# 安装软件包
sudo apt install 软件包名
# 查看当前目录
pwd
# 列出文件和文件夹
ls -la
# 切换目录
cd 目录名
# 创建目录
mkdir 目录名
# 创建文件
touch 文件名
# 查看文件内容
cat 文件名
Docker 安装和配置
安装 Docker
方法一:安装 Docker Desktop(推荐)
- 访问 Docker 官网
- 下载 Docker Desktop for Windows
- 安装时确保勾选 "Use WSL 2 instead of Hyper-V"
- 安装完成后重启电脑
方法二:在 WSL2 中直接安装 Docker
# 更新软件包列表
sudo apt update
# 安装必要的软件包
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
# 添加 Docker 的 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 Docker 仓库
echo "deb [arch=amd64 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
# 更新软件包列表
sudo apt update
# 安装 Docker
sudo apt install docker-ce docker-ce-cli containerd.io
# 启动 Docker 服务
sudo service docker start
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
验证 Docker 安装
# 查看 Docker 版本
docker --version
# 运行测试容器
docker run hello-world
如果看到 "Hello from Docker!" 消息,说明安装成功。
Docker 基本使用
常用 Docker 命令
# 搜索镜像
docker search 镜像名
# 下载镜像
docker pull 镜像名
# 查看本地镜像
docker images
# 运行容器
docker run -it 镜像名
# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
# 停止容器
docker stop 容器ID
# 删除容器
docker rm 容器ID
# 删除镜像
docker rmi 镜像ID
实践示例:运行 Nginx 服务器
# 下载 nginx 镜像
docker pull nginx
# 运行 nginx 容器,映射端口
docker run -d -p 8080:80 --name my-nginx nginx
# 在浏览器中访问 http://localhost:8080
开发环境配置
安装开发工具
# 安装 Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 安装 Python
sudo apt install python3 python3-pip
# 安装 Git
sudo apt install git
# 安装 Visual Studio Code Server(可选)
curl -fsSL https://code-server.dev/install.sh | sh
VS Code 集成
- 在 VS Code 中安装 "Remote - WSL" 扩展
- 打开命令面板(Ctrl+Shift+P)
- 选择 "Remote-WSL: New Window"
- 现在你可以在 WSL 环境中开发了
常见问题和解决方案
问题 1:WSL2 启动慢
解决方案:
# 设置 WSL2 内存限制
# 在用户主目录创建 .wslconfig 文件
创建文件 C:\Users\你的用户名\.wslconfig
:
[wsl2]
memory=4GB
processors=2
问题 2:Docker 无法启动
解决方案:
# 重新启动 Docker 服务
sudo service docker restart
# 如果还是不行,检查 Docker 状态
sudo service docker status
问题 3:文件权限问题
解决方案:
# 修改文件权限
chmod 755 文件名
# 修改所有者
sudo chown 用户名:用户名 文件名
问题 4:网络连接问题
解决方案:
# 重置网络配置
sudo service networking restart
# 或者重启 WSL
wsl --shutdown
wsl
性能优化建议
1. 文件存储位置
- 推荐:将项目文件存储在 WSL2 文件系统中(
/home/用户名/
) - 避免:频繁访问存储在 Windows 文件系统中的文件
2. 内存配置
在 .wslconfig
文件中合理配置内存:
[wsl2]
memory=8GB # 根据你的电脑配置调整
swap=2GB
processors=4
3. 使用 Docker Desktop
对于大多数用户,推荐使用 Docker Desktop 而不是在 WSL2 中直接安装 Docker。
实用技巧
1. 快速切换
创建 PowerShell 别名:
# 在 PowerShell 配置文件中添加
Set-Alias wsl wsl.exe
2. 自动启动服务
在 .bashrc
或 .zshrc
中添加:
# 自动启动 Docker
if ! pgrep -x docker > /dev/null; then
sudo service docker start
fi
3. 端口转发
WSL2 网络是 NAT 模式,如果需要从外部访问 WSL2 服务:
# 端口转发示例
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=8080 connectaddress=WSL_IP
总结
WSL2 是 Windows 用户体验 Linux 开发环境的最佳选择。通过本教程,你应该能够:
- ✅ 成功安装和配置 WSL2
- ✅ 掌握基本的 Linux 命令
- ✅ 安装和使用 Docker
- ✅ 解决常见问题
- ✅ 优化性能和使用体验
WSL2 结合 Docker 为现代开发提供了强大的工具链,无论是前端开发、后端服务,还是数据科学项目,都能在这个环境中高效完成。
记住,熟练使用 WSL2 需要时间和实践。建议从简单的项目开始,逐步探索更多高级功能。
推荐资源: