在 Windows Server 2022 上安装 Docker(更准确地说是 Docker Desktop 或 Docker Engine)需要一些特定的步骤。需要注意的是:
- Docker Desktop for Windows 主要支持 Windows 10/11 Pro/Enterprise 和 Windows Server 2022 的某些版本。
- 在服务器环境中,通常推荐使用 Docker Engine(通过 Microsoft 的集成方式) 而不是 Docker Desktop。
以下是详细的安装步骤:
✅ 方法一:使用 Microsoft 官方 PowerShell 模块安装 Docker Engine(推荐用于生产环境)
这是目前在 Windows Server 2022 上部署 Docker 的标准方法,由 Microsoft 和 Docker 合作支持。
步骤 1:以管理员身份运行 PowerShell
右键点击“开始”菜单 → “Windows Terminal (Admin)” 或 “PowerShell (Admin)”。
步骤 2:安装容器功能
# 启用容器特性
Install-WindowsFeature -Name Containers
安装完成后需要重启服务器。
Restart-Computer -Force
步骤 3:安装 Microsoft 的 PowerShell Module(用于管理容器)
# 安装或更新包管理模块
Install-Module -Name PowerShellGet -Force -AllowClobber
# 安装容器相关模块
Install-Module -Name Containers -Repository PSGallery -Force
步骤 4:下载并安装 Docker Engine
# 使用 Containers 模块安装最新版 Docker
Install-ContainerImage -Name docker
或者手动下载并安装 Docker Engine(推荐方式):
# 下载 Docker MSI 安装包(从 Docker 官方 GitHub)
Invoke-WebRequest "https://download.docker.com/components/engine/windows-server/docker.zip" -OutFile "docker.zip" -UseBasicParsing
# 解压到 Program Files
Expand-Archive docker.zip -DestinationPath $env:ProgramFiles
# 将 docker 目录添加到系统 PATH 环境变量
[Environment]::SetEnvironmentVariable("Path", "$env:Path;$env:ProgramFilesdocker", [EnvironmentVariableTarget]::Machine)
# 添加 docker.exe 到当前会话的 PATH
$env:Path += ";$env:ProgramFilesdocker"
# 注册 Docker 服务
dockerd --register-service
步骤 5:启动 Docker 服务
Start-Service docker
步骤 6:验证安装
docker --version
docker run hello-world:nanoserver
注意:Windows 容器镜像必须与宿主系统兼容。
hello-world:nanoserver是适用于 Windows Server 的测试镜像。
❗️关于 Docker Desktop for Windows Server 2022
- Docker Desktop 不直接支持 Windows Server 2022 默认安装。
- 如果你确实需要 GUI 管理界面,可以尝试:
- 升级到支持 WSL2 和 Hyper-V 的版本。
- 手动启用 WSL2 和 Hyper-V 功能(但可能不稳定或不符合生产要求)。
- 使用远程管理工具连接到该服务器进行开发调试。
⚠️ 不建议在生产服务器上安装 Docker Desktop。
🔧 常见问题解决
1. 报错:“The container OS does not match the host OS”
确保你拉取的是 Windows 容器镜像,例如:
docker run mcr.microsoft.com/windows/servercore:ltsc2022
不要尝试运行 Linux 容器,除非你启用了 LCOW(Linux Container on Windows),这需要额外配置且性能较差。
2. 镜像下载慢?
可设置国内镜像提速器(如阿里云、中科大等),编辑 %ProgramData%dockerconfigdaemon.json:
{
"registry-mirrors": [
"https://<your-mirror>.mirror.aliyuncs.com"
]
}
然后重启 Docker 服务:
Restart-Service docker
✅ 总结
| 步骤 | 内容 |
|---|---|
| 1 | 启用 Containers 角色 |
| 2 | 下载并安装 Docker Engine(MSI 或 ZIP) |
| 3 | 注册为服务并启动 |
| 4 | 测试运行一个 Windows 容器 |
📚 参考文档
- Docker 官方文档(Windows): https://docs.docker.com/engine/install/windows/
- Microsoft 容器文档: https://learn.microsoft.com/en-us/virtualization/windowscontainers/
如果你有具体用途(比如部署 ASP.NET 应用、CI/CD 等),我也可以提供对应的 Dockerfile 示例和部署方案。欢迎继续提问!
ECLOUD博客