在阿里云 Windows Server 上部署 Docker,不能直接使用 Linux 原生的 Docker Engine(因为 Docker 默认依赖 Linux 内核特性)。你需要根据业务场景选择以下两种主流方案之一:
方案一:使用 Docker Desktop for Windows(推荐用于开发/测试环境)
这是最简单的方式,适合个人开发、测试或非生产环境。Docker Desktop 会自动配置 WSL2(Windows Subsystem for Linux 2)后端,提供完整的 Docker 体验。
部署步骤:
-
检查系统要求
- 确保 Windows Server 版本支持 WSL2(建议 Windows Server 2019 或 2022)。
- 开启虚拟化功能(BIOS 中启用 VT-x/AMD-V)。
- 安装 WSL2:
wsl --install # 重启后安装默认发行版(如 Ubuntu)
-
下载并安装 Docker Desktop
- 访问 Docker 官网下载页。
- 下载
Docker Desktop Installer.exe。 - 运行安装包,按向导完成安装(需管理员权限)。
-
验证安装
- 打开 PowerShell 或 CMD,执行:
docker --version docker run hello-world - 若显示欢迎信息,说明部署成功。
- 打开 PowerShell 或 CMD,执行:
⚠️ 注意:Docker Desktop 免费版仅限开发/学习用途,不适合生产环境(有资源限制且无官方技术支持)。
方案二:使用 Windows Containers(推荐用于生产环境)
如果需要在阿里云 ECS 上运行正式业务,建议使用 Windows Server + Docker 引擎(非 Desktop),通过微软官方提供的 Windows Container 镜像。
部署步骤:
-
准备环境
- 在阿里云控制台创建一台 Windows Server 2019/2022 实例。
- 登录实例后,以管理员身份打开 PowerShell。
-
启用容器功能
# 启用容器功能(需重启) Enable-WindowsOptionalFeature -Online -FeatureName containers -All Restart-Computer -
安装 Docker Engine
- 下载 Docker Engine for Windows(注意:不是 Docker Desktop)。
- 或使用 PowerShell 脚本自动安装(推荐):
# 从 GitHub 获取安装脚本 Invoke-WebRequest -Uri "https://raw.githubusercontent.com/microsoft/Windows-Containers/main/tools/DockerInstall.ps1" -OutFile "DockerInstall.ps1" .DockerInstall.ps1
-
验证安装
docker --version docker run hello-world -
配置安全组与网络
- 在阿里云控制台为 ECS 实例的安全组开放所需端口(如 80, 443, 自定义端口)。
- 确保 Docker 服务已启动:
Get-Service Docker
关键对比与建议
| 项目 | Docker Desktop (WSL2) | Windows Containers (生产) |
|---|---|---|
| 适用场景 | 开发、测试 | 生产环境 |
| 性能 | 略低(依赖 WSL2 开销) | 原生高性能 |
| 成本 | 免费(但有限制) | 需自行维护 |
| 安全性 | 适合内部开发 | 符合企业级安全要求 |
| 阿里云兼容性 | 完全兼容 | 完全兼容 |
常见问题排查
- Docker 无法启动:检查 WSL2 是否启用(
wsl --status),或确认虚拟化功能在 BIOS 中开启。 - 镜像拉取失败:在阿里云 ECS 上可能受限于网络,可配置国内镜像提速器(如阿里云 ACR)。
- 权限问题:始终以管理员身份运行 PowerShell 命令。
💡 最佳实践:对于生产环境,建议将应用容器化后部署到 阿里云 ACK(容器服务 Kubernetes 版),而非直接在 Windows Server 上运行 Docker,以获得更好的高可用性和运维能力。
CLOUD云枢