Windows Server 2019 可以安装 Docker,但有一些前提条件和限制需要注意。以下是详细说明:
✅ 结论:
Windows Server 2019 支持 Docker,但必须使用适用于 Windows 的容器运行时(如 Docker EE 或 Moby / Containerd),并且需满足特定版本和配置要求。
📌 关键点说明:
1. 支持的 Docker 版本
- 在 Windows Server 2019 上,推荐使用 Docker Enterprise Edition (Docker EE) 或 Microsoft 提供的 Moby(开源容器运行时)。
- 官方不再为 Windows Server 2019 提供标准版 Docker Desktop(Docker Desktop 主要用于开发环境,且对 Win10/Win11 支持更好)。
✅ 推荐方案:使用 PowerShell 命令安装 Microsoft’s Docker Provider via PowerShell(基于 Moby + containerd)
2. 安装方式(推荐方法)
通过 PowerShell 安装 Docker(实为 Moby 项目提供的引擎):
# 1. 安装必要模块
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 2. 安装 Docker/Moby 引擎
Install-Package -Name docker -ProviderName DockerMsftProvider
# 3. 重启计算机
Restart-Computer -Force
安装完成后,可以通过以下命令验证:
docker --version
docker run hello-world:nanoserver
⚠️ 注意:
hello-world镜像需要是 Windows 容器镜像(例如nanoserver或mcr.microsoft.com/windows/nanoserver)
3. 系统要求
- 必须是 Windows Server 2019 Datacenter 或 Standard 版本
- 已启用 Hyper-V 和 容器 功能(可选功能)
- 启用 嵌套虚拟化(如果在 VM 中运行)
- .NET Framework 4.7.1+ 及 PowerShell 5.0+
启用功能命令:
# 启用容器功能
Enable-WindowsOptionalFeature -Online -FeatureName containers -All
# 如果需要 Hyper-V(物理机上建议开启)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V, Microsoft-Hyper-V-Management-Clients -All
4. 容器类型限制
- Windows Server 2019 仅支持运行 Windows 容器(不能运行 Linux 容器,除非启用 WSL2 —— 而 WSL2 不支持 Server 2019)
- 所以你只能拉取和运行基于 Windows 的镜像,比如:
docker run mcr.microsoft.com/windows/servercore:ltsc2019 cmd
5. 为什么不推荐 Docker Desktop?
- Docker Desktop for Windows 不支持 Windows Server 系统
- 它只支持 Windows 10/11 Pro, Enterprise, Education
- 因此,在 Windows Server 上必须使用上述的
DockerMsftProvider方式或手动部署 containerd + Docker CLI
🔧 替代方案(现代推荐)
微软和社区现在更推荐使用 containerd + Kubernetes(如 AKS-HCI 或 Rancher),而不是传统的 Docker 引擎。
从 Docker 18.09 开始,Docker 使用 containerd 作为底层运行时。你可以直接使用 containerd 并配合 ctr 或 crictl 工具管理容器。
❌ 常见错误与解决
| 错误 | 原因 | 解决方法 |
|---|---|---|
No match was found for the specified search criteria and package name 'docker' |
PSGallery 源未正确配置 | 运行 Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted |
The term 'docker' is not recognized |
未重启或 PATH 未更新 | 重启服务器或重新打开 PowerShell |
| 无法拉取镜像 | 镜像标签不匹配 OS 版本 | 使用与主机内核兼容的镜像(如 ltsc2019) |
✅ 总结
| 项目 | 是否支持 |
|---|---|
| Windows Server 2019 安装 Docker | ✅ 支持(通过 DockerMsftProvider) |
| 运行 Linux 容器 | ❌ 不支持(无 WSL2) |
| 运行 Windows 容器 | ✅ 支持 |
| 使用 Docker Desktop | ❌ 不支持 |
| 推荐替代方案 | ✅ 使用 Moby / containerd |
📚 参考文档
- Microsoft Docs: Install Docker EE on Windows Server
- GitHub Moby: https://github.com/moby/moby/releases
- Docker 官方文档关于 Windows 支持:https://docs.docker.com/engine/installation/windows/
如果你提供具体的错误信息或场景(如是否是虚拟机、是否有网络问题等),我可以进一步帮你诊断。
轻量云Cloud