在 Windows Server 2025 Datacenter 上安装 Docker,最推荐且官方支持的方式是使用 Docker Desktop for Windows(基于 WSL 2后端)或 Docker Engine for Windows Server(传统方式)。
由于你使用的是 Server 2025,微软已逐步推动使用 Docker Desktop 作为主要容器化解决方案,但传统的 Docker Engine(通过 MSI 安装包)仍然可用。以下是两种主流方法的详细步骤:
✅ 方法一:使用 Docker Desktop(推荐,适合开发和测试)
注意:Docker Desktop 需要启用 Hyper-V 和 WSL 2。它更适合开发环境,生产环境中建议使用 Docker Engine。
步骤 1:启用必要功能
以管理员身份打开 PowerShell,运行以下命令:
# 启用 Hyper-V
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
# 启用 WSL 2
wsl --install
# 重启服务器
Restart-Computer
步骤 2:下载并安装 Docker Desktop
- 访问 Docker Desktop 官网
- 下载适用于 Windows 的版本(选择
Windows架构) - 运行安装程序,按照向导完成安装
- 启动 Docker Desktop,等待系统托盘中的 Docker 图标变为绿色(表示正在运行)
步骤 3:验证安装
打开 PowerShell 或 CMD,运行:
docker --version
docker run hello-world
如果看到 “Hello from Docker!” 消息,说明安装成功。
✅ 方法二:使用 Docker Engine(适合生产环境)
优势:轻量、无 GUI、更适合服务器部署
前提:需启用 Containers 功能
步骤 1:启用 Containers 功能
以管理员身份打开 PowerShell,运行:
Install-WindowsFeature Containers
然后重启服务器:
Restart-Computer
步骤 2:安装 Docker Engine
选项 A:使用 NuGet 包管理器安装(自动脚本)
# 安装 Docker 引擎
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
重启服务:
Restart-Service docker
选项 B:手动下载 MSI 安装包
-
访问 Docker Engine for Windows 发布页
注意:Docker 官方对 Windows Server 的 Engine 支持有限,建议从 GitHub Releases 获取:
https://github.com/microsoft/windows-container-tools/releases -
下载最新的
.msi安装包(例如docker-engine-x.x.x.msi) -
双击安装,按提示完成
步骤 3:验证安装
docker --version
docker info
docker run hello-world
🔧 常见问题与优化
1. 更改 Docker 存储位置(可选)
默认情况下,Docker 镜像存储在 %ProgramData%Docker,可修改为其他磁盘:
# 停止 Docker 服务
Stop-Service docker
# 创建新目录
New-Item -ItemType Directory -Path "D:Docker"
# 移动现有数据(如有)
Move-Item -Path "$env:ProgramDataDocker" -Destination "D:Docker" -Recurse
# 编辑 daemon.json
$daemonJson = Get-Content "$env:ProgramDatadockerconfigdaemon.json" -ErrorAction SilentlyContinue
if (-not $daemonJson) {
Set-Content -Path "$env:ProgramDatadockerconfigdaemon.json" -Value '{"data-root": "D:\Docker"}'
} else {
$jsonObj = $daemonJson | ConvertFrom-Json
$jsonObj."data-root" = "D:Docker"
$jsonObj | ConvertTo-Json | Set-Content -Path "$env:ProgramDatadockerconfigdaemon.json"
}
# 重启服务
Start-Service docker
2. 配置防火墙规则(如需远程访问)
New-NetFirewallRule -DisplayName "Docker Daemon" -Direction Inbound -Protocol TCP -LocalPort 2376,2377,2375 -Action Allow
3. 使用 Linux 容器 vs Windows 容器
- Linux 容器:需启用 WSL 2 或使用 Hyper-V 隔离
- Windows 容器:原生支持,无需额外配置
查看当前模式:
docker version
📌 总结对比
| 特性 | Docker Desktop | Docker Engine (MSI) |
|---|---|---|
| 适用场景 | 开发、测试 | 生产服务器 |
| 资源占用 | 较高(含 GUI 和 WSL) | 较低 |
| 安装复杂度 | 简单 | 中等 |
| 远程管理 | 需额外配置 | 原生支持 |
| 官方支持 | ✅ | ⚠️ 有限支持 |
✅ 推荐方案
- 开发/测试环境 → 使用 Docker Desktop
- 生产服务器 → 使用 Docker Engine + K8s/Docker Swarm
如你有特定需求(如 Kubernetes 集成、CI/CD 流水线等),可进一步说明,我可提供定制化配置。
云知识CLOUD