在阿里云 Windows Server 上部署 Docker,通常有两种主流方式:使用官方提供的 Docker Desktop for Windows(适合开发/测试环境)或 使用 Windows 容器引擎(适合生产环境,需手动配置)。由于 Windows Server 本身不预装 Docker,需要先安装相应的运行时。
以下是针对阿里云 ECS(Windows Server)的两种部署方案:
方案一:使用 Docker Desktop for Windows(推荐用于开发、测试)
这是最简单的方式,Docker Desktop 会自动处理底层配置,包含完整的 GUI 界面和 WSL2 支持。
1. 前置准备
- 确保 ECS 实例已开启远程桌面连接(RDP)。
- 系统版本要求:Windows Server 2019 或 2022(建议 2022)。
- 开启虚拟化功能:
- 登录阿里云控制台 -> 实例详情 -> 更多 -> 虚拟化。
- 确保“虚拟化”选项已勾选并重启实例生效。
- 或者在服务器内部运行
systeminfo查看是否显示 "Hyper-V" 相关支持。
2. 下载安装
- 访问 Docker 官网下载页。
- 下载 Docker Desktop for Windows 安装包(
.exe)。 - 双击运行安装程序,按照向导完成安装。
- 安装过程中会提示选择使用 WSL 2 后端(推荐)或 Hyper-V。
- 如果选择 WSL 2,它会自动安装必要的 Linux 子系统组件。
3. 验证安装
安装完成后,打开 PowerShell 输入:
docker --version
docker run hello-world
如果看到欢迎信息,说明部署成功。
注意:Docker Desktop 在 Windows Server 上的授权策略可能与企业版不同,且资源占用较高,不建议直接用于高负载的生产环境。
方案二:使用 Windows Container Engine(推荐用于生产环境)
如果你需要在生产环境中运行原生 Windows 容器(如 .NET Framework 应用),可以使用微软官方的 Windows Containers 功能,无需 Docker Desktop 图形界面。
1. 开启 Hyper-V 角色
以管理员身份打开 PowerShell,执行以下命令启用 Hyper-V 和相关容器功能:
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
注:安装后可能需要重启服务器。
2. 安装 Docker 服务端
微软提供了通过 Chocolatey 包管理器安装 Docker 的方法,或者直接从 GitHub 下载 MSI 安装包。推荐使用 Chocolatey(需先安装 Chocolatey):
# 安装 Chocolatey (如果尚未安装)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# 安装 Docker
choco install docker-cli docker-engine -y
或者下载官方 MSI 安装包:
- 访问 Microsoft Container Registry 获取镜像源。
- 下载
docker-install.msi进行安装。
3. 配置 Docker 守护进程
默认情况下,Docker 服务可能未启动。请检查服务状态:
Get-Service docker
如果未运行,启动它:
Start-Service docker
Set-Service -Name docker -StartupType Automatic
4. 拉取并运行 Windows 容器
由于是 Windows 环境,必须拉取 Windows 基础镜像:
# 拉取一个示例 Windows 镜像
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
# 运行一个简单的 Hello World
docker run --rm mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd /c echo "Hello from Windows Container!"
关键注意事项(阿里云环境特有)
-
安全组配置:
- 如果在容器内启动了 Web 服务(如 Nginx/IIS),记得在阿里云控制台的 安全组 规则中放行对应的端口(如 80, 443, 8080 等)。
-
网络模式:
- Windows 容器默认使用 NAT 网络。如果需要宿主机 IP 映射,需使用
-p参数。 - 若需更复杂的网络拓扑,可考虑使用
nat或transparent模式(需额外配置)。
- Windows 容器默认使用 NAT 网络。如果需要宿主机 IP 映射,需使用
-
性能优化:
- Windows 容器的启动速度通常比 Linux 慢,内存占用也更高。在生产环境中,建议根据业务需求合理分配 CPU 和内存配额。
- 对于微服务架构,强烈建议使用 Linux 容器(即使宿主机是 Windows,也可以配合 WSL2 或双机部署 Linux 节点),因为生态更成熟且性能更好。
-
镜像源提速:
- 国内拉取 Docker Hub 镜像较慢。可以在阿里云市场搜索“阿里云容器镜像服务”(ACR),创建个人命名空间,并在 Docker 配置文件中添加 ACR 提速地址:
// C:ProgramDatadockerconfigdaemon.json { "registry-mirrors": ["https://<your-acr-endpoint>.mirror.aliyuncs.com"] }修改后需重启 Docker 服务。
- 国内拉取 Docker Hub 镜像较慢。可以在阿里云市场搜索“阿里云容器镜像服务”(ACR),创建个人命名空间,并在 Docker 配置文件中添加 ACR 提速地址:
总结
- 开发/学习:直接使用 Docker Desktop,省心省力。
- 生产/高性能:使用 Windows Container Engine + ACR 提速,避免图形界面带来的资源开销。
- 最佳实践:如果业务允许,尽量将核心服务迁移到 Linux 容器 上运行,以获得更好的兼容性和性能表现。
云知道CLOUD