在 Windows Server 2019 上安装 Docker 是可行的,但需要注意以下几点:
⚠️ 重要提示:Docker 官方从 2020 年起推荐使用 Docker Desktop for Windows(仅支持 Windows 10/11 Pro/Enterprise)或 Docker Engine on Windows Server via the Docker-Microsoft package。对于 Windows Server 2019,应使用 Docker EE(Enterprise Edition) 或通过 Microsoft 的容器功能 + 社区版 Docker Engine 安装。
以下是 在 Windows Server 2019 上安装 Docker Engine 的推荐步骤:
✅ 步骤 1:启用容器功能
以管理员身份运行 PowerShell:
# 安装容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
✅ 步骤 2:安装 Microsoft 软件包管理器(OneGet)
确保系统有 PackageManagement 模块:
# 安装 NuGet 提供程序
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# 安装 PowerShell PackageManagement 模块(如果尚未安装)
Install-Module -Name DockerMsftProvider -Force
✅ 步骤 3:安装 Docker Engine
# 从 DockerMsftProvider 安装最新版 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
这个命令会从 Microsoft 托管的 Docker 仓库安装稳定版本的 Docker Engine。
✅ 步骤 4:重启系统(可选但推荐)
Restart-Computer -Force
✅ 步骤 5:验证安装
重启后,运行以下命令验证 Docker 是否正常运行:
# 查看 Docker 版本
docker --version
# 查看 Docker 服务状态
Get-Service docker
# 启动 Docker 服务(如果未运行)
Start-Service docker
✅ 步骤 6:测试运行容器(可选)
# 拉取并运行一个 Windows 容器镜像(例如 Server Core)
docker run mcr.microsoft.com/windows/servercore:ltsc2019 echo "Hello from Docker on Windows Server 2019!"
⚠️ 注意:你必须使用与主机系统兼容的 Windows 容器镜像(如
ltsc2019)。
✅ 设置开机自启(可选)
Set-Service docker -StartupType Automatic
🔁 更新 Docker
当有新版本时,可以使用以下命令更新:
Update-Package -Name docker -ProviderName DockerMsftProvider
❌ 不支持的内容
- Docker Desktop:不支持 Windows Server 2019。
- Linux 容器:Windows Server 2019 默认仅支持 Windows 容器。若要运行 Linux 容器,需启用 WSL2 或 Hyper-V 隔离,但在 Server 2019 上支持有限,不推荐。
✅ 常见问题排查
-
错误:无法连接到 Docker 守护进程
Start-Service docker -
镜像拉取失败
- 确保网络通畅
- 使用正确的标签(如
ltsc2019) - 可尝试配置镜像X_X器(国内用户)
-
容器版本不匹配
- Windows 容器必须与主机内核版本兼容。推荐使用:
mcr.microsoft.com/windows/servercore:ltsc2019 mcr.microsoft.com/windows/nanoserver:ltsc2019
- Windows 容器必须与主机内核版本兼容。推荐使用:
✅ 参考文档
- Microsoft: Install Docker EE on Windows Server
- Docker: Windows Containers on Windows Server
如果你希望使用更现代的方案(如 Kubernetes、容器编排),建议考虑升级到 Windows Server 2022 或使用 Linux + Docker 环境。
如有具体用途(如部署 ASP.NET 应用、CI/CD),欢迎补充,我可以提供更详细的配置建议。
秒懂云