在 Windows Server 2022 上使用 Docker,可以通过以下几种方式实现:
⚠️ 注意:从 Docker Desktop 3.1 开始,Docker Desktop 不再支持 Windows Server。因此,在 Windows Server 2022 上部署 Docker,推荐使用 Docker Engine(通过 Microsoft 提供的容器功能)或 Moby 项目构建的引擎,而不是 Docker Desktop。
✅ 推荐方案:使用 Microsoft 官方支持的容器功能 + Docker Engine
步骤 1:启用容器功能
以管理员身份运行 PowerShell:
# 安装容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
步骤 2:安装适用于 Windows 的 Docker Engine
微软与 Docker 合作维护了一个适用于 Windows Server 的 Docker 引擎版本,可通过 PowerShell 脚本安装。
方法一:使用官方脚本安装 Docker-MSFT 镜像(推荐)
# 添加 Docker 的 Microsoft 包源
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# 重启系统
Restart-Computer -Force
这会安装由 Microsoft 签名和维护的稳定版 Docker Engine。
方法二:手动下载并安装最新版 Docker(可选)
如果你希望使用更新的版本,可以手动下载 .zip
包:
# 下载最新版 Docker(示例)
Invoke-WebRequest "https://download.docker.com/components/engine/windows-server/docker-24.0.7.zip" -OutFile "docker.zip" -UseBasicParsing
# 解压
Expand-Archive docker.zip -DestinationPath $env:ProgramFiles
# 清理
Remove-Item docker.zip
# 将 Docker 加入系统路径
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$env:ProgramFilesdocker", [System.EnvironmentVariableTarget]::Machine)
# 刷新环境变量
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
# 注册 Docker 服务
& $env:ProgramFilesdockerdockerd.exe --register-service
请访问 Docker 官方企业版下载页面 获取最新版本链接。
步骤 3:启动 Docker 服务
# 启动服务
Start-Service docker
# 设置开机自启
Set-Service docker -StartupType Automatic
步骤 4:验证安装
docker --version
docker run hello-world:nanoserver
注意:你只能运行基于 Windows 容器的镜像,例如:
mcr.microsoft.com/windows/nanoserver
mcr.microsoft.com/windows/servercore
Linux 容器默认不支持(除非开启 Hyper-V 隔离并配置 LCOW,但生产环境不推荐)。
✅ 使用 Windows 容器示例
# 拉取一个 Server Core 镜像
docker pull mcr.microsoft.com/windows/servercore:ltsc2022
# 运行一个交互式容器
docker run -it mcr.microsoft.com/windows/servercore:ltsc2022 cmd
🔧 常见问题解决
❌ 错误:no matching manifest for windows/amd64
原因:你的 Windows 版本与镜像不兼容。
✅ 解决方法:
- 确保宿主机 OS 版本与容器镜像版本一致(如 LTSC2022 对应 ltsc2022 镜像)。
- 使用
system info
查看版本:
docker version
winver
🐳 可选:使用 Containerd + Kubernetes(高级)
如果你计划搭建 Kubernetes 集群,也可以选择使用 containerd 作为运行时而非 Docker Engine。
参考:Kubernetes 官方文档 – Windows 支持
📝 总结
步骤 | 内容 |
---|---|
1 | 启用 Containers 功能 |
2 | 安装 Docker Engine(通过 DockerMsftProvider 或手动) |
3 | 注册并启动 docker 服务 |
4 | 使用 docker 命令运行 Windows 容器 |
🔗 参考资料
- 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://hub.docker.com/_/microsoft-windows-nanoserver
如有进一步需求(如部署 ASP.NET 应用、使用 Docker Compose、CI/CD 集成等),欢迎继续提问!