WSL2 完全入门指南:从安装到 Docker 部署

什么是 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

  1. 打开 Microsoft Store
  2. 搜索 "Ubuntu" 或其他你喜欢的发行版
  3. 点击安装

推荐的发行版:

  • Ubuntu 22.04 LTS:最流行,适合新手
  • Debian:稳定可靠
  • Alpine Linux:轻量级

方式二:通过命令行

# 查看可用的发行版
wsl --list --online

# 安装 Ubuntu
wsl --install -d Ubuntu-22.04

步骤 5:初始化 Linux 系统

安装完成后,启动 Linux 发行版:

  1. 设置用户名(建议使用小写字母)
  2. 设置密码(输入时不会显示,这是正常的)
  3. 等待初始化完成

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(推荐)

  1. 访问 Docker 官网
  2. 下载 Docker Desktop for Windows
  3. 安装时确保勾选 "Use WSL 2 instead of Hyper-V"
  4. 安装完成后重启电脑

方法二:在 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 集成

  1. 在 VS Code 中安装 "Remote - WSL" 扩展
  2. 打开命令面板(Ctrl+Shift+P)
  3. 选择 "Remote-WSL: New Window"
  4. 现在你可以在 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 开发环境的最佳选择。通过本教程,你应该能够:

  1. ✅ 成功安装和配置 WSL2
  2. ✅ 掌握基本的 Linux 命令
  3. ✅ 安装和使用 Docker
  4. ✅ 解决常见问题
  5. ✅ 优化性能和使用体验

WSL2 结合 Docker 为现代开发提供了强大的工具链,无论是前端开发、后端服务,还是数据科学项目,都能在这个环境中高效完成。

记住,熟练使用 WSL2 需要时间和实践。建议从简单的项目开始,逐步探索更多高级功能。


推荐资源: