在阿里云的 Windows 服务器上创建和运行 Docker,需要根据你使用的 Windows Server 版本以及是否支持容器功能来决定具体操作方式。以下是详细的步骤说明:
🧩 一、前提条件
-
确认操作系统版本
- 支持 Docker 的 Windows Server 版本:
- Windows Server 2016
- Windows Server 2019
- Windows Server 2022
- 必须是 Datacenter 或 Standard 版本,且支持 容器功能(Containers feature)
- 支持 Docker 的 Windows Server 版本:
-
选择实例规格
- 建议选择至少 2核4G 的 ECS 实例。
- 系统盘建议 ≥50GB。
-
远程登录
- 使用远程桌面(RDP)连接到你的阿里云 Windows 服务器。
🐳 二、安装 Docker Engine on Windows Server
Windows 上的 Docker 分为两种模式:
- Windows 容器(推荐用于运行 .NET Framework、IIS 等)
- Linux 容器(通过 WSL2,仅适用于 Windows Server 2022 + 启用 WSL)
这里以最常见的 Windows 容器模式为例。
方法:使用 PowerShell 安装 Docker
-
以管理员身份打开 PowerShell
-
安装 OneGet PowerShell 模块(如果未安装)
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force -
安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider
这会自动下载并安装最新稳定版的 Docker Engine。
-
重启服务器
Restart-Computer -Force -
验证安装
docker --version输出类似:
Docker version 20.10.17, build 100c701 -
启动 Docker 服务
Start-Service docker -
设置开机自启
Set-Service docker -StartupType Automatic
✅ 三、测试运行一个 Windows 容器
docker run hello-world:nanoserver
或运行 IIS 示例镜像:
docker run -d -p 80:80 mcr.microsoft.com/windows/servercore/iis
然后在浏览器访问 http://<你的ECS公网IP> 查看是否显示 IIS 默认页。
⚠️ 四、注意事项
| 项目 | 说明 |
|---|---|
| 镜像类型 | 只能运行与主机内核兼容的镜像: • 主机是 Windows → 只能运行 Windows 容器镜像(如 nanoserver, windowsservercore) |
| 存储驱动 | 默认使用 windowsfilter,不支持 AUFS/Overlay2 |
| 网络模式 | NAT 是默认网络模式,也可使用透明网络或 L2 bridge |
| 防火墙 | 确保安全组开放所需端口(如 80、443、2375 等) |
| 性能 | Windows 容器比 Linux 容器更占资源,建议分配足够内存 |
🔌 五、可选:启用 Docker Remote API(便于管理)
编辑配置文件或使用命令添加 TCP 监听(谨慎开放公网!):
# 修改服务参数(示例)
Stop-Service docker
& 'C:Program FilesDockerdockerd.exe' --register-service -H npipe:// -H 0.0.0.0:2375
Start-Service docker
注意:开放 2375 端口有安全风险,建议配合 TLS 或限制 IP 访问。
🛠 六、常见问题解决
-
错误:
failed to start service- 检查是否已启用“容器”功能:
Enable-WindowsOptionalFeature -Online -FeatureName containers -All - 重启后重试安装。
- 检查是否已启用“容器”功能:
-
拉取镜像慢?
- 配置 Docker 镜像提速器(适用于我国用户):
编辑%programdata%dockerconfigdaemon.json:{ "registry-mirrors": [ "https://<your-mirror>.mirror.aliyuncs.com" ] }获取专属提速地址:阿里云容器镜像服务控制台 → 镜像工具 → 镜像提速器
- 配置 Docker 镜像提速器(适用于我国用户):
-
无法访问容器端口?
- 检查:
- 安全组规则是否放行对应端口(如 80)
- Windows 防火墙是否允许
- 容器是否正确映射
-p host:container
- 检查:
📦 七、进阶建议
-
使用 Docker Compose 管理多容器应用:
# 下载 docker-compose.exe 到 PATH Invoke-WebRequest "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-windows-x86_64.exe" -OutFile "$env:ProgramFilesDockerdocker-compose.exe" -
结合 阿里云容器镜像服务 ACR 推送/拉取私有镜像。
-
考虑迁移到 Linux 服务器 + Docker + .NET Core/ASP.NET Core,性能更好、生态更成熟。
✅ 总结
在阿里云 Windows 服务器上运行 Docker 是可行的,但主要用于运行 Windows 原生应用(如 ASP.NET、IIS、SQL Server)。如果你的应用可以容器化为 Linux 版本,强烈建议使用 Linux ECS 实例运行 Docker,体验更佳、资源占用更低。
如有具体需求(如部署 ASP.NET 应用、MySQL on Windows 容器等),欢迎提供更多信息,我可以给出完整部署脚本。
CLOUD云计算