加油
努力

Windows Server 2022云服务器安装Docker需要满足哪些条件?

在 Windows Server 2022 云服务器上安装 Docker(更准确地说,是 Docker Engine for Windows,即基于 Windows 容器或 Hyper-V 隔离的容器运行时),需满足以下关键条件。⚠️ 注意:自 Docker Desktop 4.3+ 起,Docker Desktop 已不再支持 Windows Server 系统(仅支持 Windows 10/11 专业版/企业版)。因此,在 Windows Server 2022 上应使用 原生 Docker Engine(通过 Microsoft 提供的容器运行时),通常通过 Windows Containers + Moby/Docker Engine(社区维护版)或更推荐的替代方案 实现。

以下是详细、实用且符合当前(2024年)最佳实践的安装条件与步骤:


✅ 一、系统前提条件(必须满足)

条目 要求 说明
操作系统版本 Windows Server 2022(Standard 或 Datacenter 版本)
• 建议为 最新累积更新(CU)(如 22H2 或更高)
可通过 winverGet-OSVersion 查看;需启用容器功能,旧版本可能存在兼容性问题。
系统架构 x64(AMD64) 不支持 ARM64(Windows Server 2022 ARM64 尚未正式支持容器运行时)。
虚拟化支持 ✅ 已启用 Hyper-V 和/或 Windows Subsystem for Linux 2(WSL2)
• 若运行 Windows 容器(process/isolation):需启用 Containers 功能(不强制要求 Hyper-V,但推荐)
• 若运行 Linux 容器(LCOW)或 Hyper-V 隔离容器必须启用 Hyper-V
云服务器需确认 Hypervisor 支持(如 Azure VM 需选支持嵌套虚拟化的 SKU,如 Dv3/Ev3/Dsv4/Esv4 等;阿里云/腾讯云需开启“嵌套虚拟化”或选用支持 Hyper-V 的实例类型,如阿里云 g7/c7(部分地域)、腾讯云 S5/SA2 等)。
内存与磁盘 • 最低:4 GB RAM(建议 ≥8 GB)
• 磁盘:≥30 GB 可用空间(含系统盘+容器镜像存储)
容器镜像(尤其 Windows Server Core 镜像)体积大(数 GB),建议使用 SSD 存储。
管理员权限 必须以 本地 Administrator 或 Enterprise Admin 身份运行 PowerShell 所有安装和配置命令需提升权限。

✅ 二、必备 Windows 功能(需启用)

以管理员身份运行 PowerShell,执行:

# 启用容器核心功能(必需)
Enable-WindowsOptionalFeature -Online -FeatureName containers -All -NoRestart

# 若需 Hyper-V 隔离(强烈推荐用于生产/安全隔离)或 LCOW:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart

# (可选)启用 WSL2(仅当计划使用 Linux 容器 + LCOW,但已不推荐;见下文说明)
# Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -All -NoRestart
# wsl --install  # 需后续配置,但 Windows Server 对 LCOW 支持已废弃

# 重启服务器
Restart-Computer -Force

🔍 验证是否启用成功:

Get-WindowsOptionalFeature -Online -FeatureName containers, Microsoft-Hyper-V

✅ 三、Docker Engine 安装方式(官方推荐路径)

⚠️ 重要更新(2023年起)
Microsoft 已将 Windows 容器运行时整合进 Windows Server 的容器功能不再提供独立的“Docker Engine”官方安装包。取而代之的是:

✅ 推荐方案:使用 Microsoft 提供的 dockerd 二进制(Moby 项目)

这是目前 Windows Server 2022 上最稳定、受支持的方式(由 Microsoft 维护,基于开源 Moby):

  1. 下载官方 Docker Engine 二进制(适用于 Windows Server):

    • 访问 https://github.com/moby/moby/releases
      → 查找最新 dockerd for Windows(如 dockerd-24.0.7.zip

      ✅ 注意:选择 dockerd(不是 Docker Desktop),并确认 Release Notes 中明确支持 Windows Server 2022。

  2. 解压并安装服务(PowerShell 管理员):

    # 下载并解压(示例)
    $url = "https://github.com/moby/moby/releases/download/v24.0.7/dockerd-24.0.7.zip"
    $zipPath = "$env:TEMPdockerd.zip"
    Invoke-WebRequest -Uri $url -OutFile $zipPath
    Expand-Archive -Path $zipPath -DestinationPath "$env:ProgramFilesdocker"
    
    # 添加到 PATH
    $env:Path += ";$env:ProgramFilesdocker"
    
    # 注册为 Windows 服务
    dockerd --register-service
    
    # 启动服务
    Start-Service docker
  3. 验证安装

    docker version
    docker info
    docker run --rm mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd /c echo "Hello from Windows Container!"

💡 提示:首次拉取 Windows 镜像可能较慢(需从 mcr.microsoft.com 拉取),建议提前 docker pull mcr.microsoft.com/windows/servercore:ltsc2022


✅ 四、网络与安全要求

项目 要求
防火墙 开放 Docker 默认端口(如 2375/2376,若需远程 API);生产环境建议禁用未加密的 2375,改用 TLS(2376
DNS 配置 确保服务器能解析 mcr.microsoft.com(Microsoft Container Registry);云服务器需检查 VPC 内 DNS 设置(如 Azure 使用 168.63.129.16)
时间同步 启用 Windows Time 服务(w32tm /resync),避免因证书过期导致镜像拉取失败

❌ 五、常见误区与不支持项(务必规避)

错误做法 说明
❌ 安装 Docker Desktop 不支持 Windows Server —— 安装会失败或无法启动。
❌ 尝试在 Windows Server 上启用 WSL2 + Docker Desktop WSL2 在 Server 2022 可安装,但 Docker Desktop 仍不兼容,且 LCOW(Linux Containers on Windows)已自 Docker Engine 20.10 起被弃用并移除
❌ 使用老旧 Docker Toolbox(已淘汰) 不支持 Windows Server 2022,且依赖 VirtualBox(云服务器通常不支持)。
❌ 未启用 containers 功能直接运行 dockerd 报错 Error starting daemon: failed to load listeners: no listener is configuredHNS failed with error: The parameter is incorrect.

✅ 六、附加建议(生产环境)

  • 镜像源优化:国内用户可配置镜像提速(如阿里云 ACR 镜像X_X):
    # 编辑 $env:ProgramDatadockerconfigdaemon.json
    {
    "registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"]
    }
    Restart-Service docker
  • 日志与监控:启用 Docker 日志驱动(如 json-file + logrotate)或对接 Azure Monitor / Prometheus。
  • 安全加固:禁用默认 docker0 网桥、限制容器 Capabilities、使用 --user 运行非特权容器。
  • 备份策略:定期备份 C:ProgramDatadocker(含镜像、卷、网络配置)。

✅ 总结:一句话安装前提清单

Windows Server 2022 云服务器要运行 Docker(Windows 容器),必须:
✅ 是 x64 架构 + 最新 CU 更新;✅ 已启用 Containers 功能(及 Hyper-V 若需隔离);✅ 云实例支持嵌套虚拟化;✅ 以管理员运行 PowerShell 安装 Moby dockerd 二进制;✅ 能访问 mcr.microsoft.com;❌ 不安装 Docker Desktop。


如需,我可为你提供:

  • 完整自动化安装脚本(PowerShell)
  • daemon.json 生产级配置模板
  • Windows Server + IIS 容器化部署示例
  • 故障排查手册(常见报错如 hnsCall failed / The container operating system does not match the host

欢迎随时告知你的云平台(Azure/AWS/阿里云/腾讯云等)和具体用途(开发/测试/生产?运行 .NET 应用?),我可以给出针对性配置 👇

云服务器