windows server 2022如何使用docker?

云计算

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 集成等),欢迎继续提问!

未经允许不得转载:CLOUD云枢 » windows server 2022如何使用docker?