在 Windows Server 2022 上安装 Docker,必须选择支持 Windows 容器(Windows Containers)的版本,而不是默认的 Linux 容器版本。
由于 Docker Desktop for Windows 主要用于开发环境且对服务器版操作系统的支持有限(通常建议用于桌面版 Windows),在 Windows Server 2022 生产环境中,最标准且推荐的做法是安装 Docker Engine for Windows。
以下是具体的版本选择和安装逻辑:
1. 核心结论:该选哪个版本?
你应该下载并安装 Docker Engine (Moby) 的 Windows 版本。
- 产品名称:Docker Engine for Windows
- 架构要求:必须是 x64 架构。
- 关键特性:它原生支持 Windows Server 2022 的 Hyper-V 隔离和进程隔离模式。
- 注意:不要直接去 Docker Hub 下载名为 "Docker Desktop" 的安装包,那是给 Windows 10/11 用的。你需要寻找 "Docker Engine - Windows" 的 MSI 安装包。
2. 具体操作步骤与版本对应关系
A. 确认系统前置条件
在安装前,请确保 Windows Server 2022 已满足以下要求:
- 启用功能:必须启用
Containers和Hyper-V功能。Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All Enable-WindowsOptionalFeature -Online -FeatureName Containers Restart-Computer - 内核版本:Windows Server 2022 默认包含最新的内核,完美兼容最新的 Docker 引擎。
B. 获取安装包
由于 Docker 官方不再提供直接的通用 MSI 下载链接(通常通过 GitHub Release 或特定仓库),你需要前往 GitHub Releases 页面获取。
- 推荐路径:访问 Docker Engine releases on GitHub 或直接搜索 "Docker Engine for Windows"。
- 文件名特征:寻找类似
docker-<version>-windows-amd64.msi的文件。- 例如:
docker-24.0.7-windows-amd64.msi(版本号会随时间更新,建议选择最新稳定版)。 - 重要:文件名中必须包含
windows-amd64,这代表它是为 Windows 设计的。
- 例如:
C. 安装后的配置
安装完成后,Docker 服务会自动启动。你可以通过命令行验证:
docker --version
docker info
如果输出显示 Server Version: xxx 且 OSType: windows,则说明安装成功。
3. 特殊情况说明:Linux 容器 vs Windows 容器
-
场景一:运行 .NET Framework、旧版 ASP.NET 或需要 Windows 内核特性的应用
- 方案:使用上述 Docker Engine for Windows。
- 镜像:拉取
mcr.microsoft.com/windows/...开头的镜像。
-
场景二:运行 Linux 应用(如 Nginx, Python, Node.js 等)
- 方案:虽然可以在 Windows Server 2022 上运行 Linux 容器,但性能开销较大(需要通过 Hyper-V 虚拟机)。
- 替代建议:如果你主要跑 Linux 容器,建议在 Windows Server 2022 上安装 WSL 2 (Windows Subsystem for Linux) 或者更推荐的 Windows Admin Center 搭配 Kubernetes (AKS/Azure Arc) 管理节点,甚至直接在服务器上部署 Linux VM 来运行 Docker,以获得更好的性能和资源利用率。
- 注:Windows Server 2022 本身也支持 WSL 2,你可以安装 WSL 2 发行版(如 Ubuntu),然后在 WSL 内部安装 Docker Engine,这样可以直接运行 Linux 容器且性能接近原生。
总结
对于 Windows Server 2022:
- 若需运行 Windows 容器:请下载 Docker Engine for Windows (MSI 版),文件名为
docker-xx.xx.x-windows-amd64.msi。 - 若需运行 Linux 容器:建议优先在服务器上安装 WSL 2 并在其中部署 Docker,或者直接部署 Linux 虚拟机。
CLOUD云计算