在 Windows Server 上安装 Docker 和 Docker Compose,取决于你使用的具体版本。目前,Docker 官方已不再推荐在 Windows Server 上使用传统的 Docker Engine(如 Docker for Windows),而是推荐使用 Docker Desktop for Windows(适用于 Windows 10/11 Pro/Enterprise)或通过 Windows Subsystem for Linux (WSL2) 来运行容器。
但如果你使用的是 Windows Server 2019 或 Windows Server 2022,并且希望原生运行 Windows 容器(不是 Linux 容器),可以通过以下方式安装和配置 Docker。
✅ 一、确认系统要求
- 操作系统:Windows Server 2016、2019 或 2022(建议 2019+)
- 支持 容器功能
- PowerShell 管理员权限
- 网络连接(用于下载模块)
⚠️ 注意:不支持在 Windows Server Core 上安装 Docker Desktop。需使用原生 Docker Engine 方式。
✅ 二、安装 Docker Engine(适用于 Windows Server)
步骤 1:启用容器功能
以管理员身份运行 PowerShell:
# 安装容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
步骤 2:安装 Microsoft 的 Docker Provider
# 安装 NuGet 提供程序
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# 注册 Microsoft 插件源
Register-PSRepository -Name DockerProviders -SourceLocation https://dockermsft.blob.core.windows.net/docker-aux/ -InstallationPolicy Trusted
# 安装 DockerProvider 模块
Install-Module -Name DockerMsftProvider -Repository DockerProviders -Force
步骤 3:安装 Docker Engine
# 使用 DockerMsftProvider 安装最新版 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
第一次安装可能需要较长时间。
步骤 4:重启系统(可选但推荐)
Restart-Computer -Force
步骤 5:验证安装
# 查看 Docker 版本
docker --version
# 查看服务状态
Get-Service docker
# 启动 Docker 服务(如果未运行)
Start-Service docker
✅ 三、安装 Docker Compose
Docker Compose v2 是一个独立的 CLI 插件,可以手动下载。
方法一:通过 PowerShell 下载最新版 docker-compose 插件
# 创建插件目录
$dir = "$env:ProgramDataDockercli-plugins"
if (!(Test-Path $dir)) { New-Item $dir -ItemType Directory }
# 下载 docker-compose 插件(替换为最新版本号)
Invoke-WebRequest `
-Uri "https://github.com/docker/compose/releases/latest/download/docker-compose-windows-x86_64.exe" `
-OutFile "$dirdocker-compose.exe"
💡 替换链接中的版本号或使用固定版本,例如:
https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-windows-x86_64.exe
验证 Docker Compose 安装
docker compose version
注意:命令是
docker compose(两个单词),不是docker-compose(旧格式)
✅ 四、测试运行一个 Windows 容器
docker run --rm mcr.microsoft.com/windows/nanoserver:ltsc2022 echo Hello from Windows Container!
⚠️ 注意:Windows 容器必须与主机 OS 版本匹配(如 LTSC2022 镜像只能运行在 WinSrv 2022 上)
✅ 五、常见问题解决
1. 错误:failed to create shim: unexpected EOF
- 原因:镜像版本与主机不兼容。
- 解决:确保拉取与当前 Windows Server 版本一致的基础镜像。
2. Docker 服务无法启动
# 检查日志
Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5)
# 重新安装 Docker
Uninstall-Package -Name docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
✅ 六、替代方案(推荐开发环境使用)
如果你希望运行 Linux 容器,建议:
使用 WSL2 + Docker Desktop(仅限 Windows Server 可支持 WSL2 的版本)
- 启用 WSL2 功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All - 安装 WSL2 内核更新包(从微软官网下载)
- 安装 Ubuntu 等发行版
- 在 WSL 中安装 Docker CE 或使用 Docker Desktop for Windows(需 GUI)
⚠️ Docker Desktop 不官方支持 Windows Server,但部分用户成功运行。
✅ 总结
| 步骤 | 操作 |
|---|---|
| 1 | 启用 Containers 功能 |
| 2 | 安装 DockerMsftProvider 并安装 Docker |
| 3 | 下载 docker-compose.exe 到 cli-plugins 目录 |
| 4 | 使用 docker compose 命令管理多容器应用 |
🔗 参考文档
- Microsoft 官方文档:Install Docker EE on Windows Server
- Docker Compose 发布页
如有你的 Windows Server 版本或用途更具体(如是否要跑 Linux 容器、是否允许 WSL2),欢迎补充,我可以提供更优化的方案。
秒懂云