在 Windows Server 2019 Datacenter 上安装 Docker 是完全可行的,但需要注意的是:Docker 在 Windows 上运行的是 Windows 容器(Windows Containers),而不是 Linux 容器。此外,Docker 在 Windows Server 上主要通过 Docker Engine 或 Docker Desktop(后者更适用于开发环境,不推荐用于生产服务器)来部署。
由于 Windows Server 2019 是服务器操作系统,推荐使用 原生 Docker Engine for Windows Server,而不是 Docker Desktop。
✅ 步骤:在 Windows Server 2019 Datacenter 安装 Docker Engine
✅ 前提条件
- 系统:Windows Server 2019 Datacenter(建议安装最新更新)
- PowerShell(以管理员身份运行)
- 网络连接(用于下载模块和 Docker)
第一步:启用容器功能
-
打开 PowerShell(以管理员身份运行)
-
安装 Containers 功能:
Install-WindowsFeature -Name Containers
- 安装完成后,重启服务器:
Restart-Computer -Force
第二步:安装 Microsoft 软件包源(OneGet)
用于从 PowerShell 安装 DockerProvider。
# 安装 NuGet 提供程序
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# 安装 Microsoft Update(可选)
Install-PackageProvider -Name Microsoft.Update -Force
# 注册 Microsoft PowerShell Gallery(默认已注册)
Register-PSRepository -Default
第三步:安装 DockerProvider
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
如果提示信任 PSGallery,输入
A(Yes to All)。
第四步:安装 Docker Engine
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
这个命令会自动下载并安装最新稳定版的 Docker Engine。
⚠️ 注意:下载可能较慢,取决于网络。你可以使用
-Verbose参数查看进度。
第五步:重启服务器(建议)
Restart-Computer -Force
第六步:验证安装
重启后,再次以管理员身份打开 PowerShell:
# 检查 Docker 版本
docker --version
# 查看 Docker 服务状态
Get-Service docker
# 启动 Docker 服务(如果未运行)
Start-Service docker
第七步:测试运行一个 Windows 容器
docker run --rm mcr.microsoft.com/windows/nanoserver:1809 echo "Hello from Windows Container!"
注意:镜像标签应与主机系统版本兼容。Windows Server 2019 内核版本为 10.0.17763(对应 1809),请使用兼容镜像。
✅ 可选:设置 Docker 开机自启
Set-Service docker -StartupType Automatic
❌ 不推荐:Docker Desktop on Windows Server
Docker Desktop 不支持在 Windows Server 上运行(即使技术上可以绕过限制),因为它主要面向开发人员,且需要 WSL2 和 Hyper-V 图形组件,不适合生产环境。
🔧 常见问题
1. 镜像兼容性问题
Windows 容器必须与主机内核版本匹配。例如:
- Windows Server 2019 = 版本 1809(10.0.17763)
- 使用镜像如:
mcr.microsoft.com/windows/nanoserver:1809或ltsc2019
2. 网络问题
默认使用 nat 网络。可使用以下命令查看:
docker network ls
3. 存储驱动
Windows 容器使用 windowsfilter 驱动,无需额外配置。
✅ 推荐:使用 Moby / Containerd(现代替代方案)
微软和 Docker 社区现在更推荐使用 Moby 或直接集成 containerd 与 Kubernetes(如 AKS-Engine、K3s on Windows)。
但如果你只是需要简单的容器运行时,Docker Engine 仍然可用。
总结
| 步骤 | 命令 |
|---|---|
| 启用容器功能 | Install-WindowsFeature Containers |
| 安装 DockerProvider | Install-Module DockerMsftProvider -Force |
| 安装 Docker | Install-Package docker -ProviderName DockerMsftProvider -Force |
| 重启 | Restart-Computer |
| 验证 | docker --version |
如需后续管理,可配合 PowerShell、Portainer、或 Kubernetes 使用。
如有具体用途(如运行 .NET 应用、部署服务等),欢迎继续提问!
CLOUD云计算