在 Windows Server 2019 上安装 Docker 是完全支持的,但需要注意的是:Docker 在 Windows 上运行依赖于容器功能,并且推荐使用 Docker Desktop 或 Microsoft 提供的容器工具(如 Moby、Docker-MSFT-Package)。由于 Docker Desktop 对商业用途有许可限制,对于服务器环境,通常推荐使用 Docker Engine for Windows Server。
以下是基于官方推荐方式,在 Windows Server 2019 上安装 Docker Engine 的步骤:
✅ 前提条件
-
操作系统版本:
- Windows Server 2019(含 GUI 或 Server Core)
- 版本号需为 1809 或更高(建议更新到最新补丁)
-
启用容器功能:
- 必须启用“容器”Windows 功能
-
PowerShell 管理员权限
🔧 安装步骤
步骤 1:以管理员身份打开 PowerShell
# 启用容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
⚠️ 重启是必须的,否则容器运行时无法正常工作。
步骤 2:安装容器运行时(可选,但推荐)
Windows Server 2019 默认使用 containerd 或 dockerd。你可以选择安装 Microsoft 维护的 Docker 包。
方法一:使用 Microsoft 的 DockerProvider(推荐用于传统部署)
# 安装 NuGet 提供商
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# 注册 DockerMsftProvider 仓库
Install-Module -Name DockerMsftProvider -Force
# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# 重启系统
Restart-Computer -Force
这种方式会安装由 Microsoft 托管的稳定版 Docker Engine。
步骤 3:验证安装
重启后,检查 Docker 是否运行:
# 查看 Docker 版本
docker --version
# 查看服务状态
Get-Service docker
# 启动 Docker 服务(如果未运行)
Start-Service docker
步骤 4:测试运行一个容器
docker run hello-world:nanoserver
或运行 IIS 示例(适用于 Windows 容器):
docker run -d -p 80:80 mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019
注意:Windows 容器镜像较大,首次拉取可能较慢。
🛠️ 可选配置
设置 Docker 开机自启
Set-Service docker -StartupType Automatic
升级 Docker
Update-Package -Name docker -ProviderName DockerMsftProvider
❗注意事项
-
仅支持 Windows 容器:不能运行 Linux 容器,除非启用 Hyper-V 隔离并配置 LCOW(Linux Container on Windows),但该功能已不再被积极支持。
-
不推荐 Docker Desktop:Docker Desktop 不适用于 Windows Server 生产环境,且受订阅限制。
-
镜像兼容性:确保使用的容器镜像与 Windows Server 2019 的 OS 版本兼容(例如使用
ltsc2019标签)。 -
网络模式:默认使用 NAT 网络,也可配置透明网络或 L2 Bridge。
📚 参考文档
-
Microsoft Docs:
https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=windows-server -
Docker 官方文档(历史):
https://docs.docker.com/engine/installation/windows/docker-ee/(已归档)
✅ 总结
| 步骤 | 操作 |
|---|---|
| 1 | 启用 Containers 功能 |
| 2 | 安装 DockerMsftProvider 并安装 Docker |
| 3 | 重启服务器 |
| 4 | 验证 docker --version 和运行测试容器 |
如果你希望使用更现代的容器运行时(如 containerd + Kubernetes),也可以考虑迁移到 Kubernetes with containerd 架构(如 AKS-HCI 或 Tanzu),但在纯 Docker 场景下,上述方法是最直接有效的。
如有具体需求(如 CI/CD、私有镜像仓库等),可进一步扩展配置。
CLOUD技术博