WSL2 下 Docker Desktop 完全配置指南:从安装到极速体验

1. 环境准备:启用 WSL 2

2. 安装 Docker Desktop

前往 Docker Desktop 官方下载页 下载最新版安装程序(.exe)。

安装过程中,请务必确保勾选 "Use WSL 2 instead of Hyper-V"(使用 WSL 2 而不是 Hyper-V)。这是默认选项,保持勾选即可。

3. 核心配置:配置国内镜像源(解决拉取慢)

由于网络原因,直接拉取 Docker Hub 镜像(如 nginx, mysql)通常会非常慢甚至失败。强烈建议配置国内镜像加速器。

操作步骤

  1. 打开 Docker Desktop,点击右上角的 ⚙️ Settings
  2. 选择 Docker Engine
  3. 在 JSON 配置框中,添加 registry-mirrors 字段。推荐使用以下 2026 年实测可用的镜像源:
json 复制代码
{
  "registry-mirrors": [
    "https://docker.xuanyuan.me",
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io"
  ]
}
  1. 点击 Apply & restart

4. 关键步骤:更改 Docker 数据存放路径(释放 C 盘空间)

Docker 默认会将虚拟磁盘数据(镜像、容器等)存放在 C 盘的 AppData 隐藏目录下。为了避免 C 盘爆满,强烈建议将其迁移至其他盘(如 D 盘)。

操作步骤

  1. 确保 Docker Desktop 正在运行(左下角状态为 Engine running)。
  2. 点击右上角的 ⚙️ Settings(设置)。
  3. 在左侧菜单选择 Resources -> Advanced
  4. 找到 Disk image location 选项,点击 Browse ,选择您想要存放数据的新目录(例如 D:\ProgramData\Docker\DockerDesktopWSL)。
  5. 点击右下角的 Apply & Restart
  6. 在弹出的确认框中点击 Yes, move it

💡 避坑提示 :Docker 会自动将现有的核心数据盘安全迁移到新位置。迁移完成后,C 盘可能仍会保留一个较小的 Docker 文件夹(存放日志和运行时配置),这是正常现象。

⚠️ 警告 :千万不要手动去剪切 C:\Users\你的用户名\AppData\Local\Docker\wsl 文件夹,这会导致 Docker 启动异常或数据损坏!


5. 性能调优:解决文件读写慢

这是一个常被忽视但致命的问题:千万不要把项目代码放在 Windows 盘(C:\D:\)下!

  • 原因 :Docker 运行在 WSL 2 (Linux) 中。如果你的代码在 Windows 盘(例如 C:\Users\...),Docker 访问文件需要跨系统(Win <-> Linux),I/O 性能会下降 10 倍以上。
  • 正确做法 :将项目放在 WSL 2 的文件系统内。
    • 路径 :在文件资源管理器地址栏输入 \\wsl$\Ubuntu\home\你的用户名\
    • 操作 :把你的代码克隆或移动到这个目录下,然后再在这个目录下执行 docker compose up

6. 验证安装

在 PowerShell 或 WSL 终端中执行以下命令:

powershell 复制代码
# 查看 Docker 版本
docker --version

# 查看 Compose 版本 (注意是空格,不是下划线)
docker compose version

# 拉取一个测试镜像 (应该会很快)
docker pull nginx:alpine

7. 常见问题排查

  • 错误:WSL 2 installation is incomplete
  • 错误:port is already allocated
    • 端口被占用,修改 docker-compose.yml 中的宿主机端口(如 "8081:80")。
  • Docker Desktop 启动失败
    • 检查 BIOS 设置,确保 Virtualization (虚拟化) 已开启。

结语

至此,你已经拥有了一个基于 WSL2 的高性能 Docker 环境。记得始终在 \\wsl$\ 路径下进行开发,配合国内镜像源,你的开发体验将与原生 Linux 几乎无异。

相关推荐
Mortalbreeze10 小时前
深入 Linux 线程机制(三):线程互斥——竞争条件与互斥锁的本质
linux·运维·服务器·c++·算法
Tian_Hang10 小时前
Eclipse Mosquitto 安装及介绍
java·运维·服务器·ide·sql·mysql·eclipse
是大强10 小时前
Docker中文件修改的三种方法
运维·docker·容器
Helen_cai11 小时前
OpenHarmony CustomDialog 自定义弹窗全场景开发与 API23 + 适配优化
运维·服务器·microsoft
SkyWalking中文站11 小时前
认识 Horizon UI · 15/17:用模板定制控制台
运维·监控·自动化运维
一杯奶茶¥11 小时前
Ubuntu系统镜像各个版本下载Ubuntu镜像合集资源Linux系统镜像乌班图Linux系统镜像
linux·运维·ubuntu·镜像·;inux镜像·ubuntu镜像
运维行者_19 小时前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
2603_9552797020 小时前
Cursor + GitOps:自动化运维新姿势
运维·自动化
Waay20 小时前
面试口述版:个人对 Prometheus 完整理解
运维·学习·云原生·面试·职场和发展·kubernetes·prometheus
三84421 小时前
文件查找/文件压缩/解压缩
linux·运维·服务器