在 Windows Server 2022 上运行 Docker 容器,需要启用以下核心组件和服务(按必要性分层说明):
✅ 必需条件
-
Windows 版本要求
- 必须使用 Windows Server 2022 Datacenter 或 Standard 版(非 Essentials 或 IoT 版),且已安装最新累积更新。
- 建议通过
winver确认系统版本 ≥ 10.0.20348(Build 20348+)。
-
Hyper-V 支持
Docker Desktop for Windows(含 Server 场景)依赖 Hyper-V 后端;但更常见的是使用 Docker Engine for Windows(基于 Containers 功能,不强制 Hyper-V,除非运行 Linux 容器)。- 若运行 Windows 容器:仅需启用 “容器”功能(Containers feature)。
- 若运行 Linux 容器:需启用 Hyper-V + 虚拟机平台(因 WSL2 模式不可用于 Server 的 Linux 容器,需用 Hyper-V 隔离)。
🔧 必须启用的 Windows 功能
通过 PowerShell(以管理员身份)执行:
情况 A:仅运行 Windows 容器
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All -NoRestart
此命令启用:
Containers-Server(核心容器运行时)Microsoft-Hyper-V-All(可选,但若后续切换至 Hyper-V 模式则需)VirtualMachinePlatform(通常自动包含)
✅ 无需额外服务——Docker Engine 会自动管理必要后台进程(如 dockerd, containerd)。
情况 B:运行 Linux 容器(推荐方式)
需同时启用:
# 1. 容器功能
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All -NoRestart
# 2. Hyper-V(关键!Linux 容器需完全虚拟化隔离)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart
# 3. 虚拟机平台(WSL2 兼容层,部分场景辅助)
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All -NoRestart
⚠️ 注意:
- Windows Server 不支持 WSL2 作为 Docker 后端(与 Windows 10/11 不同),必须用 Hyper-V 隔离的 Linux 容器。
- 启用后必须重启服务器。
🛠️ 配套服务与配置
| 项目 | 说明 |
|---|---|
| Docker Engine for Windows | 从 Moby GitHub 或微软官方镜像下载 .msi 安装包(如 docker-desktop.exe 不适用于 Server,应选 docker-engine-windows-x86_64.msi) |
| PowerShell 7+ / .NET 6+ | 新版 Docker 引擎依赖 .NET 6 运行时(安装程序会自动部署) |
| 网络适配器 | 确保有可用虚拟交换机(Docker 默认创建 nat 和 transparent 类型) |
| 防火墙规则 | 安装后自动添加,但需开放端口(如 2375, 2376, 80, 443 等,依配置而定) |
🔍 验证是否就绪
# 检查功能状态
Get-WindowsOptionalFeature -Online | Where-Object {$_.FeatureName -like "*Container*" -or $_.FeatureName -like "*Hyper*"}
# 测试 Docker
docker --version
docker run hello-world # Windows: 拉取 mcr.microsoft.com/hello-world; Linux: 拉取 library/hello-world
💡 提示:生产环境建议直接使用 Docker Compose 或 Kubernetes (via AKS/Azure Arc) 编排,避免手动管理单节点。
如需具体部署脚本或故障排查指南,可进一步说明您的容器类型(Win/Linux)与用途。
轻量云Cloud