先泼盆冷水:Windows Server 2025 目前还没有正式发布(RTM),截至我回答时的最新状态,微软主要活跃的版本是 Windows Server 2022。所谓的“2025”可能是指预览版、泄露版,或者是你对未来版本的误称,亦或是将 Linux 的 Ubuntu 24.04/25.04 等版本混淆了。
但无论你是否指的是最新的 Windows Server 预览版或即将到来的正式版,Docker 在 Windows Server 上的运行逻辑和底层依赖是高度一致的。以下是基于当前 Docker Desktop for Windows 架构及 Windows Container 技术栈的实操指南。
一、 核心前提:版本与硬件要求
在动手之前,必须明确几个硬性门槛,否则环境装不上或者跑不起来。
-
操作系统版本
- Server Standard/Datacenter:支持容器化,但需开启功能。
- IoT Enterprise / LTSC 分支:如果你用的是长期服务版(如 Win11 IoT 或 Server LTSC),同样支持,但镜像兼容性需注意。
- 关键点:必须是 64位 系统。32位系统直接排除。
-
CPU 虚拟化
- BIOS/UEFI 中必须开启 Intel VT-x 或 AMD-V。
- 如果是 Hyper-V 模式,还需要确保 CPU 支持 SLAT(Second Level Address Translation)。
-
内存建议
- 最低 4GB,但强烈建议 8GB+。Docker Desktop 本身占用资源不少,加上容器运行,4GB 会频繁触发 Swap,导致性能崩塌。
-
Docker 版本选择
- Docker Desktop:适合开发测试,图形界面友好,自动管理 WSL2 或 Hyper-V。
- Docker Engine (服务端安装):适合纯生产环境,无 GUI,通过命令行管理,资源开销更小。
二、 两种主流搭建路径
根据你的使用场景,选择以下一种方式。
路径 A:Docker Desktop(推荐用于开发、测试、混合负载)
这是最省心的方式,微软官方维护,集成度高。
步骤 1:启用必要功能
打开 PowerShell(管理员),运行:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All
重启服务器。
步骤 2:安装 Docker Desktop
- 下载最新版 Docker Desktop for Windows。
- 安装时勾选 "Use Windows containers instead of WSL 2"(关键!因为你要跑 Windows 容器)。
- 注:如果你只想跑 Linux 容器,保持默认 WSL2 即可,但题目问的是 Windows Server 环境,通常隐含意思是跑 Windows 容器或通用容器。
- 启动 Docker Desktop,等待右下角鲸鱼图标变绿。
验证:
docker --version
docker run hello-world
路径 B:Docker Engine 服务端安装(推荐用于纯生产、无 GUI 环境)
如果你不想安装 Docker Desktop 这个庞然大物,可以直接安装 Docker Engine。
步骤 1:安装容器功能
同上,启用 Containers 和 Hyper-V 功能。
步骤 2:添加 Docker 源并安装
由于国内网络限制,直接拉取微软源可能慢,建议使用阿里云或腾讯云镜像提速,或者手动配置注册表。
以管理员身份运行 PowerShell:
# 1. 安装容器模块
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 2. 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# 3. 重启
Restart-Computer -Force
步骤 3:配置 Daemon(可选但必要)
默认情况下,Docker 监听本地管道。如果需要远程访问或调整资源限制,编辑 %ProgramData%dockerconfigdaemon.json。
例如,添加镜像提速器(以阿里云为例,需替换为你自己的 ID):
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
步骤 4:启动服务
Start-Service docker
Set-Service -Name docker -StartupType 'Automatic'
验证:
docker info
docker ps
三、 常见坑与解决方案
-
权限问题
- Docker 默认只允许
Administrators组用户操作。普通用户运行docker ps会报错。 - 解决:将用户加入 Docker 用户组,或使用管理员 PowerShell。
- Docker 默认只允许
-
网络冲突
- Windows Server 的网络适配器较多时,Docker 创建的虚拟交换机可能与现有网络冲突。
- 解决:在 Docker Desktop 设置中指定 NAT 子网,或在 Engine 模式下通过
--bip参数自定义桥接网络 IP。
-
Windows 容器镜像兼容
- Windows 容器要求基础镜像与宿主 OS 版本匹配。
- 严重警告:不要用 Windows Server 2022 的镜像去跑 Windows Server 2019 的宿主机,反之亦然。大版本跳跃会导致
manifest错误。 - 检查方法:在 PowerShell 中运行
Get-ContainerImage查看已安装的本地镜像版本。
-
WSL2 vs Hyper-V
- 如果你只是想在 Windows Server 上跑 Linux 容器,强烈建议使用 WSL2 后端(即使是在 Server 上,部分预览版支持,或迁移到 Linux VM 中)。
- 如果必须跑 Windows 容器,则必须使用 Hyper-V 隔离 或 进程隔离(仅限内部可信应用)。进程隔离性能更好,但安全性低;Hyper-V 隔离更安全,但开销稍大。
四、 总结建议
- 如果你是开发者:直接用 Docker Desktop,勾选 Windows 容器支持,省心。
- 如果你是运维/生产环境:
- 确认 OS 版本与所需容器镜像版本严格一致。
- 使用
Docker Engine而非 Desktop,减少不必要的 GUI 组件。 - 配置日志轮转,防止磁盘写满。
- 考虑是否真的需要 Windows 容器?如果能用 Linux 容器(通过 WSL2 或 Linux VM),性能和管理复杂度会大幅下降。Windows 容器的优势在于 .NET Framework 遗留系统、IIS 托管应用等特定场景。
最后提醒:如果“Windows Server 2025”确实是未发布版本,请务必先在非生产环境的测试机上验证 Docker 引擎的稳定性,微软的新版内核更新可能导致旧的容器运行时不兼容。
云计算HECS