🪟 Windows 系统 Docker 部署与故障排查指南
💡 前言
如果你正在用 Windows 10 /11,搭建一个高效稳定的 Docker 环境,但是遇到了各种“玄学”报错,这份指南都会带你从零开始,一步步搞定所有安装和设置过程。
🧾 一、系统要求
🖥️ 1. 操作系统
- Windows 10/11 专业版、企业版或教育版(家庭版需手动启用 Hyper-V)
⚙️ 2. 必备功能
- ✅ 启用 WSL 2(Windows Subsystem for Linux)
- ✅ 启用 Hyper-V
- ✅ 启用虚拟机平台(Virtual Machine Platform)
🚀 二、部署步骤
🧩 步骤 1:启用 Windows 功能
- 按下
Win + R
输入optionalfeatures.exe
并回车。 - 勾选以下选项:
- ✅ 适用于 Linux 的 Windows 子系统
- ✅ 虚拟机平台
- ✅ Hyper-V
- 点击“确定”,重启计算机。
🐧 步骤 2:安装 WSL 和 Ubuntu 发行版
- 打开 PowerShell(管理员)并执行:
wsl --install
或手动安装发行版:
wsl --install -d Ubuntu-22.04
- 设置默认版本为 WSL 2:
wsl --set-default-version 2
🐳 步骤 3:下载并安装 Docker Desktop
- 前往 Docker 官网 下载最新版 Docker Desktop。
- 安装过程中勾选“使用 WSL 2 作为后端引擎”。
- 安装完成后,重启计算机。
🔧 步骤 4:启动 Docker 并设置 WSL 集成
- 打开 Docker Desktop,进入 Settings > Resources > WSL Integration。
- 启用 Ubuntu 22.04 的集成。
- 应用并重启 Docker。
🧯 三、常见问题与解决方法
❗ 问题 1:无法启动 Docker,提示 “An error occurred while loading the containers list”
原因:可能是 WSL 子系统未正确启动或 Docker 服务异常。
解决方法:
- 打开 PowerShell,重启 WSL:
wsl --shutdown
- 然后重启 Docker Desktop。
❗ 问题 2:提示 “engine linux/wsl failed to run” 和 “context canceled”
解决方法:
- 更新 WSL 核心:
wsl --update
- 重置 Docker WSL 发行版:
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
然后重新启动 Docker Desktop,它将自动重建这些发行版。
❗ 问题 3:Docker Desktop 启动卡住或闪退
可能原因:
- 虚拟化未启用
- 系统组件不兼容
解决方法:
- 确保 BIOS 中开启虚拟化(VT-x/AMD-V)。
- 使用管理员 PowerShell 重置 Docker Desktop:
& "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon
❗ 问题 4:无法运行 Linux 容器或切换为 Windows 容器
切换方式:右键点击任务栏 Docker 图标,选择 Switch to Windows containers...
注意事项:Windows 容器依赖 Hyper-V,需启用并支持虚拟化。【安装时需要安装Windows容器才可】
🧪 四、验证 Docker 是否正常运行
- 打开终端(CMD/PowerShell/WSL)
- 运行测试容器:
docker run hello-world
- 如看到欢迎信息,则说明 Docker 工作正常。
💡 五、附加建议
- 🔄 保持 Docker 和 Windows 版本更新。
- 📦 WSL 使用建议安装 Ubuntu 22.04。
- 🍏 若需运行 macOS 虚拟容器(如 Sequoia),建议在 Ubuntu WSL 环境中运行原生 Docker,而非依赖 Docker Desktop。
🍏 关于在 Docker 中运行 macOS
如果你对在 Docker 中运行 macOS 感兴趣,可以参考以下两个开源项目:
不过根据实际测试体验,这类方案配置较为复杂、兼容性有限,整体不如 VMware 方案来得简单和稳定,更多适合折腾党或研究用途 🧪。
感兴趣的话不妨尝试一下,说不定你就是那个成功跑起来的人 😄!
📚 更多参考:Docker 官方文档
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容