在 Windows Server 2022 上安装 Docker(更准确地说是 Docker Engine 或使用容器功能)需要启用 Windows 容器功能,并通过 Microsoft 提供的 PowerShell 模块进行安装。以下是详细的步骤:
✅ 前提条件
- 操作系统版本:Windows Server 2022 Standard 或 Datacenter(支持容器)
- 系统架构:x64
- 权限要求:以管理员身份运行 PowerShell
- 网络连接:用于下载模块和 Docker 组件
⚠️ 注意:Docker Desktop 不支持 Windows Server,因此不能使用
Docker Desktop。应使用 Microsoft 的 Docker Provider for PowerShell 或直接安装 Moby/Docker-Engine for Windows Server。
🛠 安装步骤(推荐使用 Microsoft 的官方方式)
步骤 1:启用容器功能
以管理员身份打开 PowerShell,运行以下命令:
Install-WindowsFeature -Name Containers
安装完成后,重启服务器:
Restart-Computer -Force
步骤 2:安装适用于 Windows 的容器运行时(如 Docker Engine)
微软推荐使用 PowerShell 模块 DockerMsftProvider 来安装和管理 Docker。
1. 安装 NuGet 包提供程序(如果尚未安装)
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
2. 注册 Docker 的 Microsoft 包源
Register-PSRepository -Default -Verbose
3. 安装 DockerMsftProvider 模块
Install-Module -Name DockerMsftProvider -Force
4. 使用该模块安装 Docker Engine
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
此命令会自动下载并安装最新稳定版的 Docker Engine。
5. 再次重启服务器(可选但建议)
Restart-Computer -Force
步骤 3:验证安装是否成功
重启后,再次以管理员身份打开 PowerShell,运行:
docker --version
输出示例:
Docker version 20.10.17, build 100c701
再检查服务状态:
Get-Service docker
应显示状态为 Running。
如果没有运行,启动服务:
Start-Service docker
步骤 4:(可选)设置 Docker 开机自启
Set-Service docker -StartupType Automatic
步骤 5:测试运行一个 Windows 容器
拉取并运行一个简单的 Windows Server Core 容器:
docker run mcr.microsoft.com/windows/servercore:ltsc2022 cmd /c "hello world"
或交互式运行:
docker run -it mcr.microsoft.com/windows/servercore:ltsc2022 powershell
⚠️ 注意:Windows 容器必须与主机版本兼容(例如 LTSC2022 镜像适用于 Windows Server 2022)。
🔁 更新 Docker Engine
当有新版本时,可以使用以下命令更新:
Update-Package -Name docker -ProviderName DockerMsftProvider
然后重启服务或服务器。
❌ 常见问题及解决方法
| 问题 | 解决方案 |
|---|---|
Install-Package : No match was found |
确保已安装 DockerMsftProvider 并联网 |
| 容器镜像拉取失败 | 检查网络、DNS 设置,确认使用的是 Windows 容器镜像(非 Linux) |
| 版本不兼容 | 确保使用的容器镜像版本与主机 OS 版本一致(如 ltsc2022) |
✅ 补充说明
- Linux 容器:Windows Server 2022 支持通过 WSL2 运行 Linux 容器,但需额外配置 WSL2 和 Hyper-V。默认情况下,上述安装仅支持 Windows 容器。
- 替代方案:你也可以使用 containerd + Kubernetes (K8s) 替代 Docker,特别是在生产环境中。
📚 参考文档
- Microsoft 官方文档 – Install Docker EE on Windows Server
- Docker 官方文档 – Windows Containers
✅ 总结:
在 Windows Server 2022 上安装 Docker 的关键是使用 DockerMsftProvider 模块来安装原生的 Docker Engine,而不是 Docker Desktop。整个过程基于 PowerShell,适合企业级部署。
如有进一步需求(如配置私有仓库、TLS、Swarm 等),可继续扩展配置。
ECLOUD博客