在阿里云的 Windows Server 实例上安装 Docker,首先需要明确一个核心前提:Docker Desktop(Windows 版本)无法直接运行在 Windows Server 操作系统上。
Docker Desktop 是专为 Windows 10/11 设计的图形化产品,它依赖 Hyper-V 或 WSL2 技术,而 Windows Server 默认不支持这些用于桌面体验的组件。因此,在 Windows Server 上运行 Docker 的正确方式是安装 Docker Engine(命令行版本),并手动配置其所需的底层环境。
以下是针对阿里云 Windows Server 的详细安装步骤:
第一步:检查并开启必要功能
Docker Engine 在 Windows Server 上需要启用特定的功能模块。请以管理员身份打开 PowerShell 或 CMD,执行以下命令来开启 Hyper-V 和容器支持(以 Server 2019/2022 为例):
# 开启 Hyper-V 功能
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart
# 开启容器功能
Enable-WindowsOptionalFeature -Online -FeatureName Containers-DisposableClientVM -All -NoRestart
# 如果提示需要重启,请执行重启命令
Restart-Computer
注意:如果是较新的 Server 2022,通常 Containers 功能已内置,但建议确认是否已启用。
第二步:下载并安装 Docker Engine
由于没有一键安装包,我们需要从官方渠道获取 MSI 安装包。
-
下载镜像:
访问 Docker 官方 GitHub Release 页面,找到适用于 Windows Server 的 MSI 安装包。- 下载地址参考:https://github.com/docker/cli/releases
- 寻找文件名类似
docker-desktop-x.x.x.msi(注意:这里通常指 Docker Desktop,但在 Server 上我们找的是 Docker Engine for Windows)。 - 更推荐的方式:直接搜索 "Docker Engine for Windows" 或访问阿里云社区文档,通常可以直接使用微软官方提供的
Docker-CE稳定版。 - 通用方法:在阿里云控制台通过“远程桌面”连接服务器,打开浏览器访问 https://download.docker.com/win/stable/Docker%20for%20Windows%20Server%20MSI.zip (若链接失效,建议在 GitHub 搜索
docker-engine-windows-amd64.msi)。
实际上,对于 Windows Server,最稳定的方式是通过 Chocolatey 包管理器安装,或者手动下载
.msi文件。推荐方案(使用 Chocolatey 自动安装):
如果服务器已联网且能访问网络,这是最便捷的方法:# 1. 安装 Chocolatey (如果尚未安装) Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) # 2. 安装 Docker Engine choco install docker-engine --params '/InstallDir="C:Program FilesDocker"' -y手动方案(如果不便使用 choco):
下载docker-engine-windows-amd64.msi并双击运行,按照向导完成安装。
第三步:验证安装与启动服务
安装完成后,Docker 服务通常会自动启动。如果没有,请手动启动:
# 检查 Docker 版本
docker --version
# 启动 Docker 服务
Start-Service Docker
# 测试运行 Hello World
docker run hello-world
如果看到 "Hello from Docker!" 字样,说明安装成功。
第四步:关键配置(解决常见网络问题)
在阿里云环境中,Windows Server 上的 Docker 经常遇到网络不通的问题(如无法拉取镜像)。这是因为 Docker 默认的网络模式可能与云服务器的 NAT 或安全组配置冲突。
解决方案:配置静态 IP 或调整 DNS
-
修改 Docker 配置文件 (
daemon.json):
找到路径C:ProgramDataDockerconfigdaemon.json(如果没有该文件则新建)。编辑内容如下,将 DNS 指向阿里云公共 DNS 或国内可访问的镜像提速地址:
{ "registry-mirrors": [ "https://docker.mirrors.aliyun.com", "https://hub-mirror.c.163.com" ], "dns": [ "223.5.5.5", "223.6.6.6" ] }保存后,必须重启 Docker 服务才能生效:
Restart-Service Docker -
安全组配置:
确保阿里云 ECS 控制台的安全组规则中,放行了 Docker 需要的端口(通常是 2375, 2376 等,具体取决于你的配置),以及你后续要部署的服务端口。
替代方案建议
如果你的业务允许,强烈建议考虑以下两种更优架构,因为它们在 Linux 环境下对 Docker 的支持远优于 Windows Server:
-
切换为 Linux 系统:
阿里云 ECS 绝大多数用户都使用 Ubuntu、CentOS 或 Alibaba Cloud Linux。Linux 原生支持 Docker,无需配置 Hyper-V,性能更好,资源占用更少。你可以直接在阿里云控制台重置系统盘为 Linux 发行版。 -
使用 Kubernetes (ACK):
如果你需要在 Windows Server 上运行容器,建议使用 Azure/Aliyun 的托管 K8s 服务,或者在 Linux 节点上运行 Docker,仅保留少量 Windows 节点作为特定应用运行环境(混合集群),而不是在所有节点上都跑 Windows Docker。
总结
在阿里云 Windows Server 上安装 Docker 的核心路径是:开启 Hyper-V -> 安装 Docker Engine (非 Desktop) -> 配置 daemon.json 镜像提速与 DNS -> 重启服务。
如果在生产环境中遇到网络不稳定或维护困难,迁移到 Linux 操作系统通常是更稳妥、更高效的选择。
云服务器