在 Windows Server 2022 上安装 Docker,通常有两种主要方式:使用 Docker Desktop(适合开发测试)或使用 Docker Engine (Standalone)(适合生产环境,更轻量)。
由于 Windows Server 的核心版(Core)或桌面版(Desktop)架构不同,且微软官方对 Windows Server 上的 Docker 支持策略有所调整,以下是针对这两种场景的详细操作指南。
⚠️ 前置条件检查
无论选择哪种方式,请确保满足以下基础要求:
- 系统版本:必须是 Windows Server 2022(建议安装最新的累积更新)。
- 虚拟化支持:
- 如果是本地服务器,需在 BIOS/UEFI 中开启 VT-x/AMD-V。
- 如果是云服务器(如阿里云、腾讯云、AWS),需确认实例规格支持嵌套虚拟化(部分云厂商默认关闭,需在控制台开启或选择特定实例类型)。
- 功能启用:
以管理员身份运行 PowerShell,执行以下命令启用必要的功能:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All Enable-WindowsOptionalFeature -Online -FeatureName Containers Restart-Computer(重启后继续下一步)
方案一:使用 Docker Desktop for Windows(推荐用于开发/测试)
这是最简便的方式,类似于在普通 Windows 10/11 上安装 Docker,但需要确认云服务器的兼容性。
-
下载:
访问 Docker 官网下载页,下载Docker Desktop.exe。
注意:Windows Server 2022 可能需要下载较新的 Beta 版本或通过 GitHub 获取特定构建版,因为正式版有时对 Server 的支持滞后。 -
安装与配置:
- 运行安装程序。
- 在安装向导中,务必勾选 "Use WSL 2 instead of Hyper-V"(如果可用)或直接使用默认的 Hyper-V 模式。
- 对于云服务器,通常建议使用 Hyper-V 后端,因为 WSL 2 在云端虚拟环境中可能面临网络 NAT 或资源限制问题。
-
启动验证:
安装完成后启动 Docker Desktop,等待托盘图标变绿。打开 PowerShell 输入:docker run hello-world如果看到欢迎信息,则安装成功。
⚠️ 重要提示:Docker Desktop 包含图形界面和大量后台服务,不建议在纯生产环境的无头(Headless)服务器上长期使用,因为它会占用较多资源且依赖 GUI 组件。
方案二:使用 Docker Engine Standalone(推荐用于生产环境)
如果你需要在生产环境中运行容器,或者服务器没有图形界面,推荐使用此方案。它基于 Windows Container 技术(注意:不是 Linux 容器,除非你开启了 WSL2 或双栈)。
步骤 1:安装 .NET Framework 4.8 及后续依赖
Docker Engine 依赖于特定的运行时环境。
# 启用 .NET Framework 4.8 (如果未安装)
Enable-WindowsOptionalFeature -Online -FeatureName NetFx4Extended-ASPNET45 -All
步骤 2:下载并安装 Docker MSI
前往 Docker Hub Windows 镜像页面 或 Docker 官方文档获取 docker-<version>.msi。
- 如果没有直接链接,可以通过 PowerShell 脚本自动下载最新稳定版(示例):
# 这是一个通用下载脚本逻辑,具体版本号请以官网为准 $url = "https://download.docker.com/win/static/stable/x86_64/docker-24.0.7-ce.zip" # 注意:Windows Server 上通常直接使用 msi 安装包,而非 zip更稳妥的方式:直接去 Docker Engine for Windows 下载页 寻找 "Docker Engine for Windows" 的 MSI 安装包。
步骤 3:安装 Docker Engine
以管理员身份运行 PowerShell,导航到 MSI 所在目录并执行:
# 假设文件名为 docker-24.0.7.msi
Start-Process msiexec.exe -ArgumentList "/i docker-24.0.7.msi /qn" -Wait
(参数 /qn 表示静默安装,可根据需要移除)
步骤 4:验证安装
docker --version
docker info
此时,Docker 默认运行的是 Windows 容器。
🐧 进阶:如何在 Windows Server 2022 上运行 Linux 容器?
很多用户希望 Windows Server 跑 Linux 镜像(如 Ubuntu, CentOS),但上述方案二默认只支持 Windows 容器。要在 Windows Server 上运行 Linux 容器,你有两个选择:
-
使用 WSL 2 (推荐):
- 在 Windows Server 2022 上启用 WSL 2 内核。
- 安装一个 Linux 发行版(如 Ubuntu)。
- 在 WSL 2 内部安装 Docker Engine。
- 优点:性能接近原生,资源隔离好。
- 缺点:需要配置 WSL 网络,且在某些云厂商环境下配置较复杂。
-
使用 Docker Desktop + WSL 2 后端:
- 即使是在生产环境,如果必须跑 Linux 容器且不想折腾 WSL,可以安装 Docker Desktop 并强制指定 WSL 2 后端。
- 在 Docker Desktop 设置 -> General 中,勾选 "Use the WSL 2 based engine"。
💡 云服务器特别注意事项
-
网络端口映射:
云服务器安全组(Security Group)默认可能封锁了 Docker 的 API 端口(2375/2376)或宿主机的映射端口。请务必在云控制台开放相关端口(如 80, 443, 自定义端口等)。 -
存储驱动:
Windows Server 默认使用npipe进行通信。如果是生产环境,建议将 Docker 数据目录迁移到非系统盘(如 D 盘),避免 C 盘爆满:// 创建 C:ProgramDataDockerconfigdaemon.json { "data-root": "D:\docker-data" }修改后重启 Docker 服务:
Restart-Service docker。 -
替代方案考虑:
如果你的业务主要是 Web 服务或微服务,且不需要在 Windows 宿主机上运行,强烈建议放弃在 Windows Server 上直接跑 Docker,转而:- 在云平台上部署 Linux 虚拟机 或 Kubernetes 集群。
- 使用 Azure/AWS/GCP 的托管 Kubernetes 服务。
- 原因:Windows 容器的生态支持不如 Linux 完善,且维护成本较高。
总结
- 开发/测试:直接安装 Docker Desktop,选择 Hyper-V 后端。
- 生产环境 (Windows 容器):安装 Docker Engine MSI,配置静态 IP 和安全组。
- 生产环境 (Linux 容器):建议在云服务器上直接部署 Linux 系统,或在 Win2022 上配置 WSL 2 + Docker。
CLOUD技术博