在 Windows Server 2022 Datacenter 上安装 Docker,需要使用 Docker Desktop for Windows 或更推荐的 Microsoft 的容器解决方案(如 Moby + Docker CLI),因为原生 Docker 引擎对 Windows Server 的支持有限。
目前,Docker 官方不再直接提供适用于 Windows Server 的独立 Docker Engine 安装包(如 dockerd)。取而代之的是通过 PowerShell 模块或 Microsoft 提供的集成方式来部署容器环境。
以下是 在 Windows Server 2022 Datacenter 上安装并运行 Docker 容器 的标准方法:
✅ 推荐方案:使用 Microsoft 的容器功能 + Docker CLI
步骤 1:启用容器功能
以管理员身份打开 PowerShell,运行以下命令:
# 安装容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
这将安装 Windows 容器运行时(基于 Host Compute Service, HCS)。
步骤 2:安装 Microsoft 软件包管理器(MSIX)和 PowerShellGet(如果尚未安装)
确保你有最新版本的 PowerShellGet 和 PackageManagement:
# 安装最新版 NuGet 提供程序
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# 设置 PSGallery 为可信源
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
# 更新 PowerShellGet(可选)
Install-Module -Name PowerShellGet -Force -AllowClobber
步骤 3:安装容器镜像(如 Nano Server 或 Server Core)
你可以从 Microsoft Container Registry (MCR) 拉取基础镜像进行测试:
# 拉取一个 Nano Server 镜像(根据系统版本选择对应标签)
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
# 或者拉取 Server Core
docker pull mcr.microsoft.com/windows/servercore:iis-host-baseline-ltsc2022
步骤 4:安装 Docker CLI(用于命令行操作)
虽然没有原生 dockerd,但你可以安装 Docker CLI 来管理容器。
方法一:使用 Chocolatey 安装 Docker CLI
# 安装 Chocolatey(如果未安装)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# 安装 Docker CLI
choco install docker-cli -y
方法二:手动下载 Docker CLI
前往 https://download.docker.com/win/static/stable/x86_64/ 下载最新版 docker.zip,解压后将 docker.exe 放入 C:WindowsSystem32 或添加到 PATH。
步骤 5:启动容器服务并测试
# 查看已安装的容器镜像
docker images
# 运行一个测试容器
docker run --rm mcr.microsoft.com/windows/nanoserver:ltsc2022 echo "Hello from Windows Container!"
# 查看正在运行的容器
docker ps
⚠️ 注意事项
-
Windows 容器与 Linux 容器不兼容
Windows Server 只能运行 Windows 容器,不能运行 Linux 容器(除非使用 WSL2,但 WSL2 不支持 Windows Server)。 -
Docker Desktop 不支持 Windows Server
Docker Desktop 是为 Windows 10/11 Pro 设计的,不支持 Windows Server 系统。 -
推荐使用 Kubernetes 或 ACI 替代方案
对于生产环境,建议结合:- Kubernetes (via Rancher, AKS-HCI, or OpenShift)
- Azure Container Instances (ACI)
- Amazon ECS on Windows
-
系统要求
- 启用 Hyper-V(对于某些隔离模式)
- 至少 4GB 内存
- NTFS 文件系统
- 最新累积更新补丁
✅ 验证安装是否成功
# 查看 Docker 版本
docker --version
# 查看系统信息
docker info
输出应显示:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1
Server Version: ...
Operating System: Windows Server 2022 Datacenter
...
🔧 可选:配置守护进程(使用 hcsshim 或 containerd)
如果你需要更高级的编排(如 Kubernetes),可以部署 containerd 作为运行时:
参考微软官方文档:
👉 https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/containerd
总结
| 项目 | 是否支持 |
|---|---|
| 原生 Docker Engine | ❌(已弃用) |
| Windows 容器 | ✅(通过 Containers 功能) |
| Docker CLI | ✅(可手动安装) |
| Docker Desktop | ❌(不支持 Server 系统) |
| 生产推荐 | ✅ 使用 Kubernetes + containerd |
如你需要部署 Web 应用、数据库等,建议使用:
- Windows 容器 + IIS / .NET
- 或迁移到 Linux + Docker + Kubernetes 平台以获得更好的生态支持。
如有具体应用场景(如运行 SQL Server、IIS、ASP.NET),欢迎继续提问,我可以提供对应的 Dockerfile 示例。
云服务器