是的,Windows Server 2019 可以安装 Docker 和 Docker Compose,但有一些前提条件和限制需要注意。
✅ 支持情况概述:
| 组件 | 是否支持 | 说明 |
|---|---|---|
| Docker(Moby) | ✅ 是 | 支持通过 Microsoft 提供的容器功能安装 |
| Docker Compose | ✅ 是 | 支持,可通过 PowerShell 安装或使用独立二进制文件 |
一、安装 Docker on Windows Server 2019
方法 1:使用 PowerShell 安装(推荐)
-
以管理员身份运行 PowerShell
-
安装容器功能
Install-WindowsFeature -Name Containers -
重启服务器
Restart-Computer -Force -
安装 Docker Engine
使用 Microsoft 提供的脚本从 PSGallery 安装:# 安装并导入 PowerShell 包管理模块(如果尚未安装) Install-Module -Name DockerMsftProvider -Repository PSGallery -Force Install-Package -Name docker -ProviderName DockerMsftProvider -Force -
再次重启系统
Restart-Computer -Force -
验证安装
docker --version docker run hello-world:nanoserver注意:只能运行基于 Windows 容器的镜像(如
nanoserver,windowsservercore),不能运行 Linux 容器(除非启用 Hyper-V 和特定配置,且性能较差)。
二、安装 Docker Compose
Docker Compose 可以通过以下方式安装:
方法 1:使用 PowerShell 安装最新版本(推荐)
# 下载最新版 docker-compose(替换版本号为最新)
Invoke-WebRequest "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-windows-x86_64.exe" `
-UseBasicParsing -OutFile $env:ProgramFilesDockerdocker-compose.exe
建议去 GitHub Releases 找最新的
docker-compose-windows-x86_64.exe版本。
方法 2:使用 PowerShell 模块(旧方法,不推荐)
Install-Module -Name DockerCompose -Repository PSGallery -Force
此模块已过时,建议直接下载二进制文件。
验证 Docker Compose
docker-compose --version
三、注意事项与限制
| 项目 | 说明 |
|---|---|
| 仅支持 Windows 容器 | 不原生支持 Linux 容器。虽然可通过 WSL2 或 Hyper-V 实现,但 Windows Server 2019 默认不包含 WSL2。 |
| 内核版本兼容性 | 运行的容器必须与主机 Windows 版本兼容(例如,build 17763 的 Server 2019 对应相同版本的 base 镜像)。 |
| 性能与资源开销 | Windows 容器比 Linux 容器更大更重,启动慢,占用内存多。 |
| 生产环境建议 | 若主要运行 Linux 应用,建议使用 Linux 服务器部署 Docker。Windows Server 更适合运行 .NET Framework / .NET Core Windows 应用。 |
四、常见问题解决
-
错误:
The container operating system does not match the host operating system
→ 确保你拉取的是 Windows 镜像(如mcr.microsoft.com/windows/nanoserver),并且 Docker 设置为运行 Windows 容器。 -
切换容器类型(GUI 工具才有,Server Core 无此选项)
Windows Server Core 通常默认只支持 Windows 容器,无法切换。 -
PowerShell 报错无法安装模块
确保执行策略允许:Set-ExecutionPolicy RemoteSigned -Force
✅ 总结
可以!Windows Server 2019 支持安装 Docker 和 Docker Compose,适用于运行 Windows 容器应用(如 ASP.NET、IIS、.NET 后端服务等)。但对于 Linux 容器,强烈建议使用 Linux 主机或升级到 Windows Server 2022 + WSL2 支持。
如果你有具体的应用场景(比如部署某个服务),欢迎提供,我可以给出更详细的部署建议。
CDNK博客