在 Windows Server 2016 Datacenter 上安装 Docker,官方已经不再支持将其作为原生容器运行时环境。
核心结论
- 推荐方案:如果你必须使用 Windows Server 2016,请改用 Hyper-V 容器(通过
docker run --isolation=hyperv),或者更推荐直接升级操作系统。 - 版本现状:Docker Desktop for Windows(包含 CE/EE 的图形化界面和最新功能)已停止支持 Windows Server 2016。目前最新的 Docker Engine 版本(如 24.x, 25.x)要求底层操作系统至少为 Windows Server 2019 或 Windows 10/11。
- 最后支持的版本:如果你无法升级系统,只能尝试安装 Docker Engine 20.10.x(这是最后一个对 WinServer 2016 提供较完整支持的长期维护版本)。但请注意,即使是这个版本,微软官方也早已标记其为“过时”且不再提供安全更新。
详细分析与建议
1. 为什么不能装最新版?
Docker 在 Windows 上的运行依赖于底层的 Hyper-V 或 Containerd 技术栈。从 Docker Engine 23.0 开始,微软明确要求底层 OS 必须是 Windows Server 2019 或更高版本,因为旧版内核缺乏必要的内核特性(如新的网络堆栈、存储驱动优化等)。
2. 如果你坚持要在 Server 2016 上使用
如果你的业务环境被锁定在 Server 2016,你有以下两种选择:
-
方案 A:使用 Docker Engine 20.10 (命令行模式)
- 你可以下载并安装 Docker Engine 20.10.24 (或该系列的最后一个 LTS 版本)。
- 注意:安装时必须选择 "Windows Containers" 模式(默认),并且只能运行基于 Windows 的镜像。
- 限制:无法使用 Linux 容器(除非开启极其复杂的 WSL2 兼容层,但这在 Server 2016 上极不稳定且不推荐)。
- 获取方式:需要通过 Docker 的旧版归档页面寻找 MSI 安装包,或者通过 PowerShell 脚本手动配置。
-
方案 B:升级操作系统(强烈推荐)
- Windows Server 2016 已于 2022 年 1 月 11 日 结束主流支持,这意味着它不再接收安全补丁。
- 为了获得稳定的 Docker 体验(支持 Docker Desktop、Linux 容器、Kubernetes 集成等),强烈建议将服务器升级到 Windows Server 2019 或 Windows Server 2022。
- 一旦升级到 Server 2019,你就可以直接安装最新的 Docker Desktop for Windows 或 Docker Engine 24.x/25.x。
3. 替代方案:Azure Stack HCI 或 Linux 虚拟机
如果硬件老旧无法升级 Server 2016,但必须运行现代容器:
- 在 Server 2016 上创建一个 Linux 虚拟机(例如 Ubuntu 20.04+ 或 Rocky Linux 8+),然后在 VM 内部安装 Docker。这是最稳定、兼容性最好的做法。
总结操作建议
| 你的情况 | 推荐操作 | 预期结果 |
|---|---|---|
| 可以升级系统 | 升级至 Windows Server 2019/2022 | 可安装最新版 Docker (24.x+),支持所有功能,安全稳定。 |
| 必须用 Server 2016 | 安装 Docker Engine 20.10.x | 仅支持 Windows 容器,无新特性,存在安全风险,仅限临时过渡。 |
| 生产环境 | 迁移到 Linux VM 或升级 OS | 避免在 EOL (End of Life) 系统上运行关键服务。 |
最终建议:不要强行在 Server 2016 上折腾新版 Docker。如果可能,请优先安排系统升级;如果不可行,请在 Server 2016 内部部署一个 Linux 虚拟机来承载 Docker 服务。
云服务器