在 Windows Server 2022 Standard 上安装 Docker,首先需要明确一个关键前提:Docker Desktop for Windows(即图形化界面版本)不支持作为服务器角色直接安装在 Windows Server 上。
要在 Windows Server 2022 上运行 Docker,必须使用 Docker Engine for Windows(基于 PowerShell 脚本的命令行版本)。以下是标准的安装步骤和注意事项。
核心前置条件
- 操作系统版本:必须是 Windows Server 2022(建议安装最新累积更新)。
- 容器功能启用:服务器必须启用“容器”功能。
- 网络配置:确保服务器有稳定的网络连接以下载镜像。
- 权限:需要使用具有管理员权限的账户登录。
详细安装步骤
第一步:启用容器功能
打开 PowerShell(以管理员身份运行),执行以下命令来启用必要的 Windows 功能并重启服务器(如果提示需要重启):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers
Restart-Computer -Force
注意:重启后请等待系统完全启动。
第二步:安装 Docker Engine
Windows Server 官方推荐使用 Install-Docker.msi 安装包,或者通过 PowerShell 脚本自动安装。最稳妥的方式是手动下载 MSI 安装包进行部署,这样兼容性最好。
-
下载安装包:
访问 Docker 官方 GitHub 发布页或微软文档页面下载docker-engine-x.x.x-x86_64.msi(注意:不要下载 Docker Desktop 的.exe文件)。- 通常可以在 Docker Hub 的 "Downloads" 页面找到针对 Windows Server 的 MSI 包,或者使用以下 PowerShell 命令直接下载(需联网):
# 获取最新的稳定版 URL (示例逻辑,实际建议去官网确认最新版链接) $url = "https://download.docker.com/win/static/stable/x86_64/docker-27.3.1-ce.zip" # 对于 Server 环境,更推荐直接使用官方提供的 Install-Docker.ps1 脚本推荐方法:使用官方脚本安装
在 PowerShell 中运行以下命令,它会自动检测并安装适配的版本:Invoke-WebRequest -Uri https://raw.githubusercontent.com/microsoft/Windows-Containers/main/tools/Install-Docker.ps1 -OutFile Install-Docker.ps1 .Install-Docker.ps1如果上述脚本因网络问题无法运行,请下载对应的
docker-engine-x.x.x-x86_64.msi文件,双击运行并按照向导完成安装。 -
验证安装:
安装完成后,打开新的 PowerShell 窗口,输入:docker --version如果输出了版本号(如
Docker version 27.3.1, build ...),则说明安装成功。
第三步:配置 Docker 服务(可选但推荐)
默认情况下,Docker 可能使用 Hyper-V 后端。在生产环境中,建议将其配置为使用 NAT 模式或调整资源限制。
检查 Docker 是否正在运行:
Get-Service -Name Docker
如果未运行,尝试启动:
Start-Service Docker
第四步:测试运行容器
为了确保一切正常,运行一个简单的测试容器:
docker run hello-world
如果看到类似 "Hello from Docker!" 的消息,说明 Docker 引擎和容器运行时工作正常。
重要注意事项与最佳实践
-
不支持 Docker Desktop:
请勿尝试安装Docker Desktop.exe。该版本专为开发者的 Windows 10/11 设计,包含图形界面和 WSL2 依赖,在 Server 2022 上无法正常运行,且没有授权许可。 -
WSL2 后端 vs Hyper-V 后端:
- Hyper-V 后端:这是 Windows Server 的标准容器后端,性能稳定,适合生产环境。
- WSL2 后端:虽然 Server 2022 支持 WSL2,但在纯服务器场景下,使用 Hyper-V 后端通常更简单且无需额外配置 Linux 子系统。除非你有特定的 Linux 工具链需求,否则保持默认的 Hyper-V 后端即可。
-
防火墙与安全组:
如果需要在外部访问容器端口,请务必在 Windows 防火墙或云服务商的安全组中放行相应的 TCP/UDP 端口。 -
内存与 CPU 限制:
Docker 默认可能会占用较多资源。建议在C:ProgramDataDockerconfigdaemon.json中配置资源限制,例如:{ "default-runtime": "runc", "log-driver": "json-file", "log-level": "info", "max-concurrent-downloads": 10, "storage-driver": "windowsfilter" }(注:具体参数需根据实际硬件调整)
-
替代方案考虑:
如果你的应用场景对 Linux 原生特性(如特定的内核模块、cgroup v2 等)有强依赖,或者希望获得更好的隔离性和性能,强烈建议在 Windows Server 2022 上部署一台 Linux 虚拟机(使用 Hyper-V 或 Azure/AWS EC2),然后在虚拟机内部安装 Docker。这是企业级生产环境的常见做法,可以避免 Windows 容器带来的兼容性问题。
通过以上步骤,你就可以在 Windows Server 2022 Standard 上成功部署并使用 Docker 引擎了。
云知识CLOUD