在 Windows Server 2022 Datacenter 上安装 Docker 是完全支持的,但需要注意的是:Docker 在 Windows 上运行依赖于容器功能和 Microsoft 的支持组件。目前,在 Windows Server 上安装 Docker 推荐使用 Docker Desktop for Windows Server 或直接使用 Microsoft 提供的容器运行时(如 Moby + containerd)。
以下是详细的安装步骤:
✅ 方法一:使用 Microsoft 官方推荐方式(推荐)
微软与 Docker 合作,提供了一个适用于 Windows Server 的轻量级容器运行时,通常通过 PowerShell 安装。
步骤 1:启用容器功能
以管理员身份打开 PowerShell,运行以下命令:
# 安装容器功能
Install-WindowsFeature -Name Containers
# 重启服务器(必须)
Restart-Computer -Force
步骤 2:安装容器工具(Moby / Docker CLI)
微软推荐使用 microsoft/hcsshim 和社区版 Docker Engine(Moby)。
你可以使用 PowerShell 脚本自动安装:
# 下载并运行官方安装脚本
Invoke-WebRequest "https://github.com/microsoft/Windows-Containers/raw/main/tools/Install-Package.ps1" -UseBasicParsing -OutFile Install-Package.ps1
# 安装最新版本的容器运行时(Moby + containerd)
.Install-Package.ps1 -PackageName Moby -SourceUrl https://mirror.mcs.anl.gov/pub/Moby/Builds/Stable/moby-engine.zip -ContainerDUrl https://mirror.mcs.anl.gov/pub/Moby/Builds/Stable/containerd.zip
💡 注:上面的 URL 使用的是镜像源(避免 GitHub 下载慢),你也可以从 Moby GitHub Releases 手动下载。
步骤 3:重启 Docker 服务
Start-Service docker
首次安装后服务可能已自动启动。
步骤 4:验证安装
docker --version
docker run hello-world:nanoserver
⚠️ 注意:你需要拉取 Windows 容器镜像,例如
nanoserver、windowsservercore,不能运行 Linux 容器(除非开启 LCOW,但不推荐用于生产)。
✅ 方法二:使用 Docker Desktop(仅限特定场景)
Docker Desktop 支持 Windows Server 2022,但需要满足以下条件:
- 必须启用 Hyper-V 和 容器功能
- 需要图形界面(GUI)或 Server with Desktop 版本
- 适用于开发/测试环境,不推荐用于生产部署
安装步骤:
- 启用 Hyper-V 和容器:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V, Containers -All
-
重启服务器。
-
从 Docker 官网 下载 Docker Desktop Installer.exe
-
安装并启动,选择使用 Windows 容器。
-
在 PowerShell 中测试:
docker info
docker run mcr.microsoft.com/windows/nanoserver:ltsc2022 echo "Hello from Windows Container"
📌 注意事项
| 项目 | 说明 |
|---|---|
| 容器类型 | 只能运行 Windows 容器(如 Nano Server、Server Core) |
| 内核兼容性 | 宿主机 OS 版本需与容器镜像版本匹配(建议使用 LTSC 版本) |
| LCOW(Linux 容器) | 技术预览,不稳定,不推荐生产使用 |
| 存储驱动 | 默认为 windowsfilter,也可使用 overlayfs(实验性) |
| 网络 | 使用 NAT、Transparent 或 L2 Bridge 模式 |
🔧 常见问题排查
-
错误:no matching manifest for windows/amd64
→ 使用正确的 Windows 镜像标签,例如:docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022 -
Docker 服务无法启动
→ 检查是否正确安装了containerd和moby,日志位于C:ProgramDatadockerlog -
权限问题
→ 确保用户属于docker-users组(如果存在)
✅ 总结
| 方案 | 适用场景 | 推荐度 |
|---|---|---|
| Moby + containerd(PowerShell 安装) | 生产环境、无 GUI 服务器 | ⭐⭐⭐⭐⭐ |
| Docker Desktop | 开发测试、有桌面环境 | ⭐⭐⭐ |
如需自动化部署,可将上述 PowerShell 脚本集成到你的配置管理工具(如 Ansible、Chef、Packer)中。
如果你告诉我你是用于生产还是测试、是否有 GUI、是否需要 Kubernetes 支持,我可以进一步优化建议。
CDNK博客