是的,Docker 可以部署到 Windows Server 上,但有一些限制和要求需要注意。
✅ 支持的 Windows Server 版本
Docker 在以下版本的 Windows Server 上支持:
- Windows Server 2016
- Windows Server 2019
- Windows Server 2022
- Windows Server, version 1709 / 1803 / 1809(Semi-Annual Channel)
注意:从 Windows Server 2022 开始,长期支持通道(LTSC)推荐使用。
✅ Docker 的两种运行模式
在 Windows 上,Docker 支持两种容器类型:
-
Windows 容器(Windows Containers)
- 运行基于 Windows 的镜像(如
mcr.microsoft.com/windows/servercore
) - 需要与宿主机内核版本兼容(例如 Windows Server 2022 镜像只能在 2022 上运行)
- 运行基于 Windows 的镜像(如
-
Linux 容器(Linux Containers, 默认)
- 通过 WSL2(Windows Subsystem for Linux 2)或 Hyper-V 虚拟机运行
- 需要启用 WSL2 或 Hyper-V
⚠️ 在同一时间,Docker Desktop 只能运行一种类型的容器(切换需重启 Docker)
✅ 如何在 Windows Server 上安装 Docker
方法一:使用 Microsoft 官方 PowerShell 模块(推荐用于服务器环境)
# 1. 安装容器功能
Install-WindowsFeature -Name Containers
# 2. 重启服务器
Restart-Computer -Force
# 3. 安装 Docker Engine(Microsoft 提供的脚本)
PowerShell -ExecutionPolicy Bypass -Command "Install-Module -Name DockerMsftProvider -Repository PSGallery -Force"
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# 4. 重启 Docker 服务
Start-Service Docker
此方法安装的是 Docker Engine(命令行工具),适合生产环境。
方法二:安装 Docker Desktop(适用于带 GUI 的 Windows Server)
如果你的 Windows Server 有桌面体验(Desktop Experience),也可以安装 Docker Desktop for Windows,它提供图形界面和更方便的管理功能。
- 下载地址:https://www.docker.com/products/docker-desktop
- 要求:
- 启用 WSL2 和虚拟化
- Windows 10/11 Pro 或 Enterprise,或 Windows Server 2019/2022(部分功能支持)
注意:Docker Desktop 在企业/生产环境中使用时需注意许可问题(自 2022 年起对大公司收费)。
✅ 常见用途
- 部署 .NET Framework/.NET Core 应用容器
- 运行 SQL Server on Windows 容器
- 微服务架构中的 Windows 组件容器化
❌ 不支持的情况
- 32位系统
- Windows Server Core without Containers feature
- 某些精简版或 Nano Server(部分版本已弃用)
✅ 最佳实践建议
- 使用 Windows Server 2022 Datacenter 版本 + 容器角色
- 优先使用 Server Core 镜像 减小体积
- 确保宿主机与容器镜像的 OS 版本匹配
- 生产环境建议使用 Docker Engine + Kubernetes(如 AKS-HCI 或 Rancher)
🔍 验证安装是否成功
docker --version
docker run hello-world
对于 Windows 容器:
docker run mcr.microsoft.com/windows/nanoserver:ltsc2022 echo Hello World
总结
项目 | 是否支持 |
---|---|
Windows Server 2016+ | ✅ 是 |
Windows 容器 | ✅ 是 |
Linux 容器(通过 WSL2/Hyper-V) | ✅ 是(需配置) |
Docker Engine 命令行 | ✅ 推荐用于服务器 |
Docker Desktop | ✅ 可选,但注意许可 |
如有具体版本或使用场景(如生产部署、Kubernetes 集成等),可以进一步细化方案。