在 Windows Server 2019 上使用 Docker 是可行的,但有一些限制和特定要求。以下是详细说明:
✅ 是否支持 Docker?
是的,Windows Server 2019 支持运行 Docker,但只能运行 Windows 容器(Windows Containers),不能直接运行 Linux 容器(除非使用 Hyper-V 隔离 + LCOW,但已不推荐且不稳定)。
⚠️ 注意:从 Docker Desktop 3.1 开始,Docker Desktop 不再支持 Windows Server。你必须使用 Docker Engine for Windows Server 或迁移到 containerd + Kubernetes(如 AKS-Engine、K3s 等)。
✅ 支持的容器类型
| 类型 | 是否支持 | 说明 |
|---|---|---|
| Windows 容器 | ✅ 支持 | 推荐方式,基于 Windows 内核 |
| Linux 容器(LCOW) | ❌ 已弃用 | 微软已停止支持 LCOW(Linux Containers on Windows) |
✅ 安装 Docker Engine on Windows Server 2019
步骤 1:启用容器功能
以管理员身份运行 PowerShell:
Install-WindowsFeature -Name Containers
重启服务器:
Restart-Computer -Force
步骤 2:安装 Microsoft 更新源(可选但推荐)
# 安装 OneGet 提供商来管理包源
PowerShellGetInstall-Module -Name DockerMsftProvider -Repository PSGallery -Force
步骤 3:安装 Docker Engine
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
步骤 4:重启系统
Restart-Computer -Force
步骤 5:验证安装
docker --version
docker run hello-world:nanoserver
💡 注意:
hello-world:nanoserver是适用于 Windows 容器的测试镜像。
✅ 常见问题与注意事项
1. 主机与容器版本兼容性
- Windows Server 2019 的内核版本是
10.0.17763 - 所有容器镜像的基础镜像(如
mcr.microsoft.com/windows/servercore:ltsc2019)必须匹配或低于主机版本。 - 示例:
FROM mcr.microsoft.com/windows/servercore:ltsc2019
2. 存储驱动
默认使用 windowsfilter 驱动,不支持 AUFS 或 OverlayFS。
3. 网络模式
支持以下网络模式:
- NAT(默认)
- Transparent(桥接)
- L2 Bridge / VLAN
- 仅限本地主机通信
配置示例:
docker network create -d transparent my-transparent-net
✅ 推荐替代方案(现代做法)
由于 Docker Engine 在 Windows 上维护有限,微软建议转向更现代的容器运行时:
✔️ 使用 containerd + Kubernetes (e.g., AKS, K3s)
- 更轻量、更稳定
- 支持 CRI(容器运行时接口)
- 适合生产环境
工具推荐:
- Rancher K3s 支持 Windows 节点(实验性)
- Azure Kubernetes Service (AKS) 支持混合集群(Linux + Windows 节点)
❌ 不支持的功能
| 功能 | 说明 |
|---|---|
| Docker Desktop | 不支持 Windows Server |
| Docker Swarm(高级功能) | 功能受限,不推荐用于新项目 |
| Linux 容器(LCOW) | 已废弃,不稳定 |
| GUI 管理工具(如 Portainer) | 可运行,但需额外部署 |
✅ 实际应用建议
如果你要在 Windows Server 2019 上部署容器化应用,请:
- 使用
.NET Framework/.NET Core应用打包为 Windows 容器 - 基于
servercore:ltsc2019或nanoserver:ltsc2019构建镜像 - 使用 PowerShell 或 CI/CD 自动化构建和部署
- 考虑未来迁移到 Windows Server 2022 或 Azure 容器服务
📚 参考文档
- Microsoft Docs: Install Docker EE on Windows Server
- Docker 官方 Windows 文档
- Nano Server 容器镜像
总结
| 项目 | 支持情况 |
|---|---|
| Windows 容器 | ✅ 完全支持 |
| Linux 容器 | ❌ 不推荐,已弃用 |
| Docker Desktop | ❌ 不支持 |
| 生产部署 | ⚠️ 可行,但建议考虑 containerd/Kubernetes |
| 推荐系统 | Windows Server 2019 LTSC + Docker Engine |
如果你提供具体用途(如部署 IIS、.NET 应用等),我可以给出具体的 Dockerfile 示例。
CLOUD技术博