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 几乎无异。

相关推荐
AOwhisky8 分钟前
Linux(CentOS)系统管理入门笔记(第十四期)——计划任务与进程调度管理:atcron 与 nicechrt
linux·运维·笔记·centos·云计算·进程调度·计划任务
小莫分享20 分钟前
sshw:用交互搜索和 Web 配置高效管理 SSH Server
linux·运维·golang·开源·ssh
冰封之寂40 分钟前
Docker Compose 容器编排实战:从入门到 LNMP 环境部署-zabbix监控
docker·容器·zabbix
fthux43 分钟前
GitHub Actions自动化运维实战:构建高效可靠的CI/CD流水线
运维·自动化·github
流浪0011 小时前
Linux系统22:——文件(六):目标文件与ELF深度解析:从编译到加载的全景揭秘
linux·运维·服务器
MrDJun1 小时前
长期稳定跑网页监控:TLS 指纹、代理选路与请求节流的工程实践
运维·爬虫·python·网络协议·网站监控
AAA@峥1 小时前
Ceph 集群配置管理完整指南
运维·数据库·分布式·ceph
带娃的IT创业者1 小时前
原生体验的回归:深入解析 TREK —— 专为 Apple Silicon 打造的轻量级容器方案
macos·docker·虚拟化·开源项目·容器化·apple silicon·trek
爱吃龙利鱼1 小时前
K8s 运维体系搭建:全组件监控与日志收集实战(victoria-metrics-k8s-stack 0.87.0)
运维·容器·kubernetes
weixin_446729161 小时前
Nginx简单学习与了解
运维·nginx