Windows下部署docker
折腾一整晚!Windows 安装 Docker 完整踩坑实录(真实还原版)
前言
为了在 Windows 上搭建 Docker 环境,从晚上一直折腾到凌晨,一路踩坑无数:WSL 版本下错、旧内核删不掉、Docker 装了又卸、卸了又装、软链接报错、镜像拉不下来、C 盘爆满…… 终于在凌晨彻底跑通。
这篇博客完全还原今晚真实步骤,包括一开始下错版本、反复出错、怎么卸载、怎么重装、哪里最容易卡死,全部写清楚,给后来人避坑。
一、最开始:我直接下载了旧版 WSL 内核,从第一步就错了
最开始我想装 Docker,提示需要 WSL 2。
我按照网上老教程,下载了一个旧的 WSL 内核更新包:
wsl_update_x64.msi
直接双击安装,以为搞定了。
结果运行 Docker 直接报错:
- WSL 内核版本过低
- 无法启动 Docker Desktop
- 始终提示需要更新 WSL 内核
当时我并不知道:
这个 wsl_update_x64.msi 是很早以前的旧内核补丁,不是现在新版完整 WSL。
从第一步版本就下错,导致后面全部卡死。
二、尝试更新 WSL,全部失败
我执行:
wsl --update
要么网络失败,要么更新完版本依旧不对。
wsl --status 只显示默认版本 2,不显示内核版本,明显不正常。
三、卸载旧 WSL:命令无效,最终靠「设置 - 应用」卸载
我一开始用命令卸载:
wsl --uninstall
完全没用,旧内核依旧存在。
最后才找到正确方法:
- 打开
设置 → 应用 → 已安装的应用 - 搜索:
Windows Subsystem - 找到:
Windows Subsystem for Linux Update- 旧的 WSL 内核相关程序
- 逐个右键 卸载
- 卸载完成后重启电脑
这一步才真正把旧 WSL 清理干净。
四、重新安装正确版本 WSL:wsl.2.6.3.0.x64.msi
清理干净后,下载正确新版 WSL:
wsl.2.6.3.0.x64.msi
新版本是通过github下载的(不能相信豆包给你的让你下载的网站,要不就是旧版本,要不就是404网站,豆包太low了,就这一点折腾我好几个小时)
(Release 2.6.3 · microsoft/WSL)
这里又踩坑:
- 直接双击安装,没有管理员权限 → 安装不完整
- 安装后不重启 → 内核不生效
正确步骤:
(▲前提:要先把你电脑上已存在的旧版本WSL卸载掉,你才能安装新版本,不然容易导致你安装的新版本没有用,电脑上仍然是旧版本在发力)
- 以管理员身份运行安装包
- 一路下一步安装
- 安装完成必须重启电脑
重启后,WSL 才算真正装好。
五、安装 Ubuntu 分发版:用户名踩坑
执行安装 Ubuntu:
wsl --install -d Ubuntu
设置用户名时,我输入类似:
dell_
直接报错:
Invalid username. A valid username must start with...
原因:
Linux 用户名不能以符号结尾,必须字母开头,只能小写字母、数字、下划线。
改成正常名字如 dell 就通过了。
六、Docker 安装:装 C 盘空间爆炸 → 卸载 → 重新装 D 盘
第一次安装 Docker 默认路径 C 盘,没多久 C 盘直接红了。
于是我:
- 从设置里卸载 Docker
- 删除残留文件
- 准备把 Docker 完整迁移到 D 盘
七、迁移 D 盘:软链接 mklink 疯狂报错
我想通过软链接把:
C:\Program Files\Docker
映射到
D:\tools\Docker\docker
执行命令:
mklink /J "C:\Program Files\Docker" "D:\tools\Docker\docker"
结果连续报错:
-
在 PowerShell 里运行
报错:
不识别 mklink 命令原因:
mklink是 CMD 命令,PowerShell 不支持。 -
在 CMD 里运行,但不是管理员
报错:权限不足。
-
管理员 CMD 运行,但文件夹已存在
报错:当文件已存在时,无法创建该文件。
原因:之前卸载 Docker 后残留文件夹没删干净。
最终正确步骤:
-
管理员 CMD
-
先删残留目录:
rmdir /s /q "C:\Program Files\Docker" -
再创建链接:
mklink /J "C:\Program Files\Docker" "D:\tools\Docker\docker"
出现:
为 C:\Program Files\Docker <<===>> D:\tools\Docker\docker 创建的联接
才算成功。
八、重装 Docker,默认路径安装(实际写入 D 盘)
软链接建好后,安装 Docker 时保持默认路径不变:
C:\Program Files\Docker
因为软链接已经指向 D 盘,文件会实际写入 D 盘。
安装完成后重启电脑。
九、Docker 数据目录也要迁移 D 盘(最容易忘)
Docker 程序虽然在 D 盘,但镜像数据默认还在 C 盘:
C:\Users\xxx\AppData\Local\Docker\wsl\data\ext4.vhdx
非常占空间。
迁移步骤:
- 打开 Docker → 设置(齿轮)
- Resources → Advanced
- 修改
Disk image location到 D 盘 - 点击 Apply & Restart
- 弹窗选择
Yes, move it - 等待迁移完成(不要中断)
十、最后一关:docker run hello-world 拉取失败
运行测试:
docker run hello-world
直接报错:
failed to resolve reference... 连接超时
原因:国内网络无法直接访问 Docker Hub。
解决:配置镜像加速。
进入 Docker → Docker Engine,填入镜像地址:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev",
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.1ms.run",
"https://docker.ketches.cn"
]
}
保存重启 Docker。
十一、终于成功!
再次运行:
docker run hello-world
出现:
Hello from Docker!
This message shows that your installation appears to be working correctly.
折腾一整晚,环境终于彻底搭建完成。
今晚所有易错点、卡死点总结
- 一开始下错 WSL 版本,用了旧内核补丁
- 旧 WSL 无法用命令卸载,必须在设置 - 应用里卸载
- WSL 安装必须管理员 + 重启,否则不生效
- Ubuntu 用户名不能以下划线结尾,否则报错
- Docker 装 C 盘必炸,必须迁移 D 盘
mklink只能在管理员 CMD 里用,PowerShell 不行- 建软链接前必须删除原有目录
- Docker 数据目录默认在 C 盘,90% 的人会忘
- 国内不拉镜像加速,
hello-world都跑不起来
最终成功环境
- WSL 版本:2.6.3.0
- 内核:6.6.87.2-microsoft-standard-WSL2
- Docker 版本:29.3.1
- 安装路径:D:\tools\Docker\docker
- 数据路径:D 盘
- 镜像加速正常
docker run hello-world成功运行
更多推荐
所有评论(0)