Windows Server 2019 支持使用 Docker,但有一些限制和特定的配置要求。以下是关于在 Windows Server 2019 上使用 Docker 的详细说明:
✅ 是否支持 Docker?
是的,Windows Server 2019 支持 Docker,但需要注意以下几点:
- 它支持的是 Docker EE(Enterprise Edition) 或通过 Microsoft Container Platform 安装的容器功能。
- 它运行的是 Windows 容器(不是 Linux 容器,除非启用特定兼容层)。
- 推荐使用 Docker Enterprise Edition 或 Microsoft 的容器功能 + Moby 项目。
? 支持的容器类型
| 容器类型 | 是否支持 | 说明 |
|---|---|---|
| Windows 容器 | ✅ 是 | 原生支持,推荐使用 |
| Linux 容器 | ⚠️ 有限支持 | 需要启用 WSL2 或 Hyper-V 隔离 + LCOW(Linux Containers on Windows),但在 Server 2019 上不推荐且已弃用 |
⚠️ 注意:LCOW(Linux Containers on Windows)在较新版本中已被弃用,不建议在生产环境中使用。
✅ 安装 Docker 的方法(Windows Server 2019)
方法一:使用 PowerShell 安装(推荐)
-
以管理员身份打开 PowerShell
-
安装容器功能
Install-WindowsFeature -Name Containers -
重启服务器
Restart-Computer -Force -
安装容器运行时(如 Docker)
使用 Microsoft 提供的脚本安装 Docker(基于 Moby):
# 安装 PowerShell 模块 Install-Module -Name DockerMsftProvider -Repository PSGallery -Force # 安装 Docker Install-Package -Name docker -ProviderName DockerMsftProvider -Force # 启动 Docker 服务 Start-Service Docker -
验证安装
docker --version docker run hello-world:nanoserver
? 运行 Windows 容器示例
docker run -it mcr.microsoft.com/windows/nanoserver:1809 cmd
注意:容器镜像的版本必须与主机的 Windows 版本兼容(如 1809、2019 等)。
⚠️ 常见问题和注意事项
-
版本兼容性
- Windows Server 2019 的内核版本是 10.0.17763(对应 1809)。
- 只能运行相同或更早版本的 Windows 容器镜像。
-
不推荐运行 Linux 容器
- 虽然早期支持 LCOW,但性能差、功能受限,且微软已不再维护。
- 如需运行 Linux 容器,建议使用 Windows Server 上的 WSL2 + Docker Desktop(但 Docker Desktop 不支持 Server 版本)。
-
替代方案:使用 Kubernetes 或 Windows Containers with Containerd
- 微软推荐使用 containerd 作为运行时,配合 Kubernetes(如 AKS-HCI 或 OpenShift)。
-
Docker EE vs CE
- Docker CE(社区版)官方不再支持 Windows Server。
- 推荐使用 Microsoft 提供的 Docker 分支或迁移到 containerd + Kubernetes。
? 替代方案(现代推荐)
如果你正在构建现代化容器平台,建议考虑:
- Windows Server + Kubernetes(如 AKS-HCI、OpenShift、Rancher)
- 使用 containerd 作为容器运行时
- 混合环境使用 Linux 节点跑 Linux 容器,Windows 节点跑 Windows 容器
✅ 总结
| 项目 | 是否支持 |
|---|---|
| Docker(Windows 容器) | ✅ 支持 |
| Docker(Linux 容器) | ❌ 不推荐,已弃用 |
| 安装方式 | PowerShell + DockerMsftProvider |
| 推荐用途 | 运行 .NET Framework/.NET Core Windows 应用 |
| 替代方案 | Kubernetes + containerd |
? 参考文档
- Microsoft 官方文档:Install Docker EE on Windows Server
- Docker 官方对 Windows 的支持说明
如果你有具体的应用场景(如部署 ASP.NET 应用、是否需要 Linux 容器等),可以告诉我,我可以给出更具体的建议。
CDNK博客