在阿里云的 Windows Server 上安装 Docker,最推荐且官方支持的方式是使用 Docker Desktop。
需要特别说明的是:Windows Server 2016/2019/2022 默认不支持 Linux 容器(Linux Containers),只能运行 Windows 容器(Windows Containers)。如果你需要运行标准的 Linux 镜像(如 nginx, python, mysql 等),通常建议直接使用阿里云的 Linux 实例(CentOS/Ubuntu/Alibaba Cloud Linux),或者使用 WSL2 环境(但在纯服务器场景下较少见)。
以下是针对 Windows Server + Windows 容器 的标准安装步骤:
前置条件检查
- 系统版本:确保你的实例是 Windows Server 2019 或 2022(2016 已停止主流支持)。
- 虚拟化功能:登录阿里云控制台,确认实例规格支持虚拟化(绝大多数 ECS 都支持)。
- 网络配置:确保实例的安全组已放行相关端口(如 2375, 2376, 80, 443 等,视具体需求而定)。
- 管理员权限:需要使用 Administrator 账户登录。
方法一:使用 Docker Desktop for Windows(推荐)
这是最简单、图形化界面友好的方式,适合开发测试和轻量级生产环境。
1. 下载并安装
由于 Docker Desktop 对服务器操作系统有特定要求,请前往官网下载对应版本的安装包:
- 访问 Docker Desktop 下载页面。
- 选择 Windows Server 版本(注意区分普通 Windows 和 Server 版,或者直接下载通用版并在安装时确认兼容性)。
- 提示:如果官网直接提供 Server 版较难找,也可以尝试下载通用的 Docker Desktop Installer,它在检测到 Windows Server 时会提示切换至 Windows 容器模式。
2. 安装过程
- 双击安装包运行。
- 按照向导点击 "Next"。
- 在安装选项卡中,务必勾选 "Use the Windows container runtime"(使用 Windows 容器运行时)。
- 注意:不要勾选 Linux 容器选项,因为 Windows Server 内核不支持原生 Linux 容器。
- 完成安装后重启计算机。
3. 验证安装
打开 PowerShell(以管理员身份运行),输入以下命令:
docker --version
docker run hello-windows
如果输出版本信息且能成功拉取并运行 hello-windows 镜像,则安装成功。
方法二:手动安装 Docker Engine(适用于无 GUI 环境)
如果你的阿里云实例没有安装桌面环境(Server Core 模式)或者不想用 Docker Desktop,可以使用命令行安装 Docker Engine。
1. 启用容器服务组件
在 PowerShell (Admin) 中运行:
Install-WindowsFeature -Name Containers -Restart
2. 安装 Docker
你可以使用 PowerShell 模块直接安装,或者手动下载 MSI 包。推荐使用 PowerShell 脚本自动安装:
# 导入 Docker 模块(如果已安装)
Import-Module docker
# 或者手动下载并安装(需先下载 msi 到本地)
# Invoke-WebRequest -Uri https://download.docker.com/win/stable/Docker%20for%20Windows.msi -OutFile Docker.msi
# Start-Process "msiexec.exe" -ArgumentList "/i", "Docker.msi", "/quiet", "/qn", "/norestart" -Wait
注:在 Server Core 模式下,更常见的做法是直接通过 NuGet 包管理安装,但考虑到稳定性,对于生产环境,强烈建议使用方法一(Docker Desktop)或切换到 Linux 实例。
⚠️ 重要注意事项与替代方案
1. 关于 Linux 容器的限制
在 Windows Server 上,你无法直接运行大多数主流的 Linux Docker 镜像(例如 docker pull nginx 会失败,或者必须指定 --platform linux/amd64 但依然需要复杂的虚拟机层支持,性能极差且不推荐)。
- 解决方案 A(推荐):如果你需要运行 Linux 应用,请在阿里云控制台购买一台 Linux 实例(如 Alibaba Cloud Linux 3, Ubuntu 22.04),然后在上面安装 Docker。这是最标准、性能最好的做法。
- 解决方案 B:如果必须在 Windows Server 上跑 Linux 应用,可以安装 WSL2(Windows Subsystem for Linux),在 WSL2 内部运行 Docker。但这会增加资源开销,不适合高负载生产环境。
2. 安全组配置
安装完成后,记得在阿里云控制台的“安全组”规则中添加入站规则,允许外部访问 Docker 端口(如果需要远程管理):
- TCP: 2375 (非加密) / 2376 (加密)
- TCP: 80, 443 (业务端口)
3. 性能考量
Windows 容器的性能略低于 Linux 容器,且磁盘 IO 开销较大。如果是核心业务,请优先考虑 Linux 实例。
总结
- 仅运行 Windows 应用:直接在阿里云 Windows Server 上使用 Docker Desktop 安装即可。
- 运行 Linux 应用(如 Web 服务、数据库):不要在 Windows Server 上折腾 Docker,请直接购买 Linux ECS 实例,那里才是 Docker 的原生主场。
云知识CLOUD