在阿里云的 Windows 环境中部署 Docker,需要根据你使用的具体实例类型(如 Windows Server)来选择合适的部署方式。以下是详细的步骤和注意事项:
一、前提条件
-
使用阿里云 ECS 实例
- 操作系统:Windows Server 2016 / 2019 / 2022(建议 2019 或以上)
- 推荐镜像:
Windows Server 2022 数据中心版 64位中文版
或英文版 - 实例规格:至少 2核4G,推荐 4核8G 或更高(Docker 和容器较吃资源)
-
远程连接
- 使用 远程桌面(RDP) 连接到你的 Windows 实例。
-
管理员权限
- 需以管理员身份运行 PowerShell 或 CMD。
二、安装 Docker on Windows Server
Windows Server 上的 Docker 支持通过 Docker Enterprise Edition (EE) 或 Microsoft Container Platform 实现。但目前更推荐使用 Docker Desktop for Windows(仅支持 Windows 10/11 Pro/Enterprise),而 Windows Server 不支持 Docker Desktop。
因此,在 Windows Server 上应使用 Docker Engine via Containers feature + Docker CLI。
✅ 正确方法:在 Windows Server 上安装 Docker Engine
步骤 1:启用容器功能
以管理员身份打开 PowerShell,运行以下命令:
# 安装容器功能
Install-WindowsFeature -Name Containers
安装完成后,重启服务器:
Restart-Computer -Force
步骤 2:安装 Microsoft Hyper-V 与容器管理模块(可选但推荐)
# 启用 Hyper-V(如果未启用)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
# 安装容器管理 PowerShell 模块
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
如果提示无法安装模块,请先设置执行策略:
Set-ExecutionPolicy RemoteSigned -Force
步骤 3:安装 Docker Engine
# 从官方源安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
注意:该命令会从微软维护的 Docker 包仓库下载并安装最新稳定版 Docker Engine。
步骤 4:重启系统
Restart-Computer -Force
步骤 5:验证安装
重启后,再次登录,打开 PowerShell,运行:
docker --version
输出示例:
Docker version 20.10.17, build b4f7ef6
再运行:
docker run hello-world:nanoserver
注意:Windows 容器使用的是 Windows Nano Server 或 Server Core 镜像,不能运行 Linux 容器,除非启用 LCOW(Linux Container on Windows,已弃用)。
三、配置 Docker(可选)
设置 Docker 开机自启
Set-Service docker -StartupType Automatic
查看 Docker 服务状态
Get-Service docker
四、运行 Windows 容器示例
# 拉取 IIS 镜像并运行
docker run -d -p 80:80 mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
然后在浏览器访问 http://<你的ECS公网IP>
,应看到 IIS 欢迎页。
五、常见问题与解决方案
问题 | 解决方案 |
---|---|
Install-Package : No match was found |
确保网络正常,尝试更换 DNS(如 8.8.8.8),或手动下载 Docker zip 包 |
无法拉取镜像 | 检查是否为正确的 Windows 版本匹配镜像(如 LTSC2022) |
防火墙阻止访问 | 在阿里云控制台安全组中开放端口(如 80、443) |
系统版本不支持 | 确保是 Windows Server 2016 及以上 |
六、替代方案:使用 WSL2 + Docker Desktop(不适用于 Windows Server)
⚠️ 注意:Docker Desktop 仅支持 Windows 10/11 Pro 或 Enterprise,不支持 Windows Server。
如果你希望使用图形化界面和更完整的 Docker 功能,建议:
- 使用本地开发机(Windows 10/11)+ Docker Desktop
- 或在阿里云使用 Linux 实例(如 CentOS/Ubuntu)部署 Docker,更加稳定高效
七、推荐:改用 Linux 部署 Docker(更优选择)
绝大多数生产环境使用 Linux + Docker,原因包括:
- 性能更好
- 社区支持丰富
- 镜像生态更完整
- 更容易集成 CI/CD
例如在 Alibaba Cloud Ubuntu 实例上:
curl -fsSL https://get.docker.com | bash
一键安装。
总结
项目 | 建议 |
---|---|
操作系统 | Windows Server 2019/2022 |
安装方式 | PowerShell 安装 Containers 功能 + DockerMsftProvider |
容器类型 | Windows 容器(Nano Server / Server Core) |
生产建议 | 优先使用 Linux 部署 Docker |
如需进一步帮助,可以提供你使用的具体镜像名称和报错信息,我可以帮你诊断。
是否需要我提供一个自动化 PowerShell 脚本一键部署?