在 Windows Server 2022 Standard 上安装 Docker 是可行的,但需要注意的是:Docker 在 Windows 上运行的方式与 Linux 不同。在 Windows 上,Docker 主要通过以下两种方式之一运行:
- Docker Desktop for Windows(不推荐用于服务器环境)
- 独立的 Docker Engine(Moby / Docker-Engine)直接运行在 Windows Server 上
由于你使用的是 Windows Server 2022 Standard,建议使用 原生 Windows 容器支持 来部署 Docker 引擎(即 dockerd),而不是 Docker Desktop。
✅ 推荐方案:在 Windows Server 2022 上安装原生 Docker Engine
步骤 1:启用容器功能
以管理员身份打开 PowerShell 并运行:
# 启用容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
步骤 2:安装 Microsoft 更新源管理器(可选但推荐)
确保系统是最新的,特别是容器相关的补丁。
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module -Name PackageManagement -Force -AllowClobber
步骤 3:安装 Docker(使用 Microsoft 提供的脚本)
Microsoft 提供了一个方便的脚本来安装 Docker Engine。
以管理员身份运行 PowerShell:
# 下载并运行 Docker 安装脚本
Invoke-WebRequest "https://github.com/microsoft/Windows-Containers/raw/main/helpers/Install-DockerEngine.ps1" -UseBasicParsing | Invoke-Expression; Install-DockerEngine
⚠️ 注意:这个脚本会自动:
- 下载最新稳定版的 Docker Engine for Windows
- 配置服务
- 设置开机启动
或者手动安装(更可控):
手动安装 Docker Engine(推荐)
1. 下载 Docker 二进制文件
# 创建目录
mkdir C:Docker
cd C:Docker
# 下载 Docker zip 包(替换为最新版本链接)
Invoke-WebRequest -Uri "https://download.docker.com/components/engine/windows-server/docker.zip" -OutFile docker.zip
最新下载地址参考官方文档:
https://docs.docker.com/engine/install/windows/#install-on-windows-server
示例(请检查是否有更新版本):
Invoke-WebRequest -Uri "https://desktop.docker.com/win/main/amd64/docker.zip" -OutFile docker.zip
⚠️ 实际上,对于服务器,建议从 Docker EE for Windows Server 或通过 Docker-Microsoft 官方发布渠道 获取。
替代方法(使用 Docker 提供的安装脚本):
# 使用社区常用脚本安装
Invoke-WebRequest https://get.docker.com -o install-docker.ps1
. { iwr -useb https://get.docker.com } | iex
这个脚本通常也适用于 Windows Server(由 https://get.docker.com 支持)
步骤 4:配置 Docker 服务并启动
如果已解压 dockerd.exe 和 docker.exe 到 C:Docker,将其加入系统路径:
# 将 Docker 添加到系统 PATH
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:Docker", [System.EnvironmentVariableTarget]::Machine)
# 注册 Docker 服务
dockerd --register-service
# 启动服务
Start-Service docker
步骤 5:验证安装
# 查看 Docker 版本
docker version
# 运行测试容器
docker run hello-world:nanoserver
注意:你需要拉取支持 Windows 的镜像,例如基于
nanoserver或windowsservercore的镜像。
🔧 常见问题和注意事项
| 问题 | 解决方案 |
|---|---|
hello-world 找不到镜像 |
使用 mcr.microsoft.com/windows/nanoserver 等官方镜像 |
| 容器启动失败 | 检查主机 OS 版本与镜像版本是否兼容(如 build 号匹配) |
| 性能慢 | 启用快速启动或优化存储驱动(默认是 windowsfilter) |
🐳 示例:运行一个简单的 IIS 容器
docker run -d -p 80:80 mcr.microsoft.com/windows/servercore/iis
然后访问服务器 IP,应看到 IIS 欢迎页。
❌ 不推荐:Docker Desktop on Windows Server
Docker Desktop 主要是为开发人员设计的桌面环境工具,在 Windows Server 上不被官方支持作为生产用途。因此,不要在服务器上安装 Docker Desktop。
✅ 总结:最佳实践
| 项目 | 推荐操作 |
|---|---|
| 安装方式 | 使用 PowerShell 脚本安装原生 Docker Engine |
| 功能启用 | 先启用 Containers 角色 |
| 镜像选择 | 使用 Windows 容器镜像(NanoServer / ServerCore) |
| 系统要求 | Windows Server 2022(64位),至少 4GB 内存 |
| 网络模式 | NAT 默认,也可配置透明网络或 L2 Bridge |
📚 参考文档
- https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=windows-server
- https://docs.docker.com/engine/install/windows/#install-on-windows-server
- https://github.com/microsoft/Windows-Containers
如果你提供具体的使用场景(如运行 .NET 应用、需要 Linux 容器等),我可以进一步给出优化建议。
云计算