Windows Server 2022 Datacenter安装docker?

云计算

Windows Server 2022 Datacenter 上安装 Docker,需要使用 Docker Desktop for Windows 或更推荐的方式是使用 Microsoft 的容器功能(如 Moby + containerd),因为传统的 Linux 版本 Docker 不适用于 Windows。

但请注意:Docker Desktop 不支持 Windows Server 操作系统。它仅支持 Windows 10/11 Pro 或 Enterprise。

因此,在 Windows Server 2022 Datacenter 上运行容器的正确方式是:


✅ 推荐方案:使用 Microsoft 官方支持的容器运行时(Moby + containerd)

这是官方推荐用于 Windows Server 的方式。

步骤 1:启用容器功能

以管理员身份打开 PowerShell 并运行:

# 启用容器功能
Enable-WindowsOptionalFeature -Online -FeatureName containers -All

# 重启服务器
Restart-Computer -Force

步骤 2:安装容器运行时(Moby)

微软提供了一个脚本来自助安装 Moby(一个开源容器引擎,基于 Docker 项目)。

# 下载并运行容器安装脚本
Invoke-WebRequest "https://github.com/microsoft/hcsshim/releases/latest/download/install.msi" -OutFile "install-containerd.msi"
Start-Process msiexec.exe -Wait -ArgumentList "/i install-containerd.msi /quiet"

# 或者使用旧版 Moby 引擎(已逐步淘汰)
# 使用以下命令安装 Moby:
# Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# Start-Service Docker

⚠️ 注意:DockerMsftProvider 已被弃用(自 2023 年起),建议使用 containerdhcsshim


步骤 3:验证安装

# 查看服务状态
Get-Service containerd

# 测试运行一个 Windows 容器
docker run --rm mcr.microsoft.com/windows/nanoserver:ltsc2022 echo "Hello from Windows Container!"

如果提示 'docker' is not recognized,请确认 PATH 包含 C:Program FilesLinux Containersbin 或类似路径(取决于安装方式)。


步骤 4:配置镜像提速(可选,国内用户)

编辑 daemon.json 文件(通常位于 C:ProgramDatadockerconfigdaemon.json):

{
  "registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"]
}

然后重启服务:

Restart-Service containerd

🛑 不支持的情况说明

  • Docker Desktop:不支持 Windows Server 系统。
  • Linux 容器(WSL2 后端):Windows Server 不支持 WSL2,因此不能运行 Linux 容器(除非使用 Hyper-V 隔离 + LCOW,但实验性且性能差)。

✅ 支持的容器类型

类型 是否支持 说明
Windows 容器 ✅ 是 推荐,使用 Nano Server、Server Core 镜像
Linux 容器 (LCOW) ⚠️ 实验性 需开启 LCOW,性能较差,不推荐生产

开启 LCOW(可选,测试用途):

# 创建或修改 daemon.json
Set-Content -Path "$env:ProgramDatadockerconfigdaemon.json" -Value '{ "features": { "lcow": true } }'

# 重启服务
Restart-Service docker

然后可以拉取 Linux 镜像:

docker run --rm alpine echo "Hello from Alpine Linux"

⚠️ LCOW 性能较差,仅适合测试。


🔧 常见问题排查

  1. 错误:no matching manifest for windows/amd64

    • 解决方法:确保你使用的基础镜像与主机版本匹配(如 ltsc2022 对应 Win Server 2022)。
    • 示例:
      docker run mcr.microsoft.com/windows/nanoserver:ltsc2022
  2. Hyper-V 未启用

    • 运行:
      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V, Containers -All
    • 然后重启。
  3. 权限不足

    • 确保当前用户属于 docker-users 组或使用管理员运行。

✅ 总结

目标 方法
在 Win Server 2022 跑容器 ✅ 使用 containerd + Windows 容器
安装 Docker 命令行工具 ✅ 使用 Microsoft 提供的 Moby/containerd 安装包
运行 Linux 容器 ⚠️ 可通过 LCOW 实现,但不推荐生产环境

🔗 参考文档

  • Microsoft 容器文档
  • Install containerd on Windows
  • Windows Server 容器镜像兼容性

如果你有具体的应用场景(比如想部署 ASP.NET 应用、CI/CD 等),我可以提供更具体的 Dockerfile 和部署示例。欢迎继续提问!

未经允许不得转载:CLOUD云枢 » Windows Server 2022 Datacenter安装docker?