在 Windows Server 上安装 Docker,通常有两种主流方式:使用 Docker Desktop for Windows(适合开发测试)和 使用 Docker Engine(适合生产环境,性能更好)。
由于你是在云服务器上操作,且通常涉及远程管理或无图形界面(Headless)场景,强烈推荐使用 Docker Engine(通过脚本安装),而不是 Docker Desktop。Docker Desktop 依赖 Hyper-V 或 WSL2 虚拟化层,在云环境中配置复杂且资源开销较大。
以下是基于 Windows Server 2016/2019/2022 的完整安装步骤:
核心前置条件
在开始之前,请确保你的云服务器满足以下要求:
- 操作系统版本:Windows Server 2016, 2019, 或 2022。
- 功能开启:必须启用 容器服务 (Containers) 功能。
- 网络环境:能够访问微软官方源或国内镜像提速源(如阿里云、腾讯云镜像提速器)。
- 权限:使用具有管理员权限的账户登录。
方法一:使用 PowerShell 自动脚本安装(推荐)
这是目前最标准、最便捷的安装方式,由 Docker 官方维护的脚本会自动处理所有依赖项。
1. 启用容器功能
打开 PowerShell (以管理员身份运行),执行以下命令来安装必要的角色和功能:
# 检查并启用 Containers 功能
Install-WindowsFeature -Name Container -IncludeManagementTools
如果提示需要重启,请先不要重启,继续执行后续步骤,脚本通常能处理重启逻辑,或者你可以手动重启后再次运行脚本。
2. 下载并运行安装脚本
在 PowerShell 中直接运行以下命令下载并执行官方安装脚本:
# 下载脚本
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/microsoft/Winget-Packages/master/src/docker/docker-engine/install.ps1" -OutFile "docker-install.ps1"
# 执行脚本(注意:不同版本的脚本地址可能略有变化,如果上述链接失效,建议去 Docker Hub 获取最新脚本)
# 更通用的官方脚本地址如下:
iwr -useb https://aka.ms/hangover | iex
注意:如果上述通用脚本无法运行,请使用以下经过验证的标准流程(针对 Windows Server 2019/2022):
替代方案(更稳健的手动步骤):
-
下载 MSI 安装包:
访问 Docker 官方发布页面,下载Docker-Enterprise-x.x.x.msi或Docker-Desktop-x.x.x.msi(如果是服务器版,建议下载Docker Engine对应的 MSI,但通常 Docker 官网主要提供 Desktop 用于 Windows 桌面,对于 Server 纯命令行环境,推荐使用 Docker Toolbox 已过时,现在推荐使用 Docker Engine for Windows Server 的离线包或在线安装)。实际上,目前 Windows Server 上最推荐的“在线”方式是直接调用
install.sh的等效 PowerShell 逻辑,或者使用以下官方提供的简单安装器(适用于 Server 2019+):最简化的 PowerShell 一键安装命令(适用于 Server 2019/2022):
# 1. 安装容器功能 Install-WindowsFeature -Name Container -IncludeManagementTools # 2. 下载 Docker 引擎安装程序 $url = "https://download.docker.com/win/static/stable/x86_64/docker-24.0.7-ce.zip" # 注意:上面的 URL 是静态包示例,实际建议使用官方提供的 SetupDockerEngine.ps1 脚本 # 如果无法确定具体版本号,建议访问 https://docs.docker.com/desktop/install/windows-server/ 获取最新脚本链接 # 推荐使用官方维护的 GitHub 仓库脚本(最稳妥) Invoke-WebRequest -Uri "https://raw.githubusercontent.com/microsoft/Windows-Container-Hyper-V-Image/main/scripts/install-docker.ps1" -OutFile "install-docker.ps1" .install-docker.ps1如果脚本执行失败,请尝试手动下载安装包(离线安装法):
- 访问 Docker Hub 搜索
docker engine windows server或使用阿里云等国内镜像站下载docker-<version>.zip。 - 解压到
C:Program FilesDocker。 - 将
docker.exe添加到系统环境变量PATH中。 - 重启电脑。
- 访问 Docker Hub 搜索
方法二:验证安装与配置镜像提速
无论采用哪种安装方式,安装完成后都需要进行验证和配置。
1. 验证安装
在 PowerShell 中输入:
docker --version
docker info
如果输出了版本号和详细的系统信息(包括存储驱动为 npipe 或 hcsshim),则说明安装成功。
2. 配置国内镜像提速(关键步骤)
由于默认拉取 Docker Hub 速度极慢,建议在云服务器上配置镜像提速器。
-
编辑 Docker 配置文件(通常在
%ProgramData%dockerconfigdaemon.json)。- 如果没有该文件,请新建一个文本文件并命名为
daemon.json。
- 如果没有该文件,请新建一个文本文件并命名为
-
添加以下内容(以阿里云为例,其他云厂商类似):
{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }注:请根据你所在的云服务商选择对应的提速地址(阿里云、腾讯云、华为云等均有各自的提速地址)。
-
保存文件后,重启 Docker 服务:
Restart-Service docker
3. 测试运行
运行一个简单的 Hello World 容器:
docker run hello-world
如果看到欢迎信息,恭喜你,Docker 已成功在 Windows Server 上运行。
常见问题排查
- 错误提示:"The container OS is not supported"
- 原因:Windows Server 版本过旧(如 Server 2012 R2 不支持较新的 Docker 版本)。
- 解决:升级 OS 或降级 Docker 版本。
- 权限问题
- 确保当前用户属于
Administrators组,或者将用户加入Docker Users组。
- 确保当前用户属于
- WSL2 vs Native
- 在 Windows Server 上,Docker 默认使用 Moby 项目(原生 Windows 容器),不需要 WSL2。如果你安装了 WSL2 并想运行 Linux 容器,需要额外配置,但对于大多数 Windows 应用部署,直接使用原生模式即可。
总结
对于云服务器环境,首选方案是启用 Containers 功能并使用官方脚本或 MSI 包安装 Docker Engine。避免在服务器上安装 Docker Desktop,因为它会占用大量内存并依赖额外的虚拟化组件,不适合生产环境的高可用需求。安装后务必第一时间配置镜像提速,否则拉取镜像可能会超时。
CLOUD云计算