云服务器Windows Server 2022安装docker?

在 Windows Server 2022 上安装 Docker,通常有两种主要方式:使用 Docker Desktop(适合开发测试)或使用 Docker Engine (Standalone)(适合生产环境,更轻量)。

由于 Windows Server 的核心版(Core)或桌面版(Desktop)架构不同,且微软官方对 Windows Server 上的 Docker 支持策略有所调整,以下是针对这两种场景的详细操作指南。


⚠️ 前置条件检查

无论选择哪种方式,请确保满足以下基础要求:

  1. 系统版本:必须是 Windows Server 2022(建议安装最新的累积更新)。
  2. 虚拟化支持
    • 如果是本地服务器,需在 BIOS/UEFI 中开启 VT-x/AMD-V。
    • 如果是云服务器(如阿里云、腾讯云、AWS),需确认实例规格支持嵌套虚拟化(部分云厂商默认关闭,需在控制台开启或选择特定实例类型)。
  3. 功能启用
    管理员身份运行 PowerShell,执行以下命令启用必要的功能:

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    Enable-WindowsOptionalFeature -Online -FeatureName Containers
    Restart-Computer

    (重启后继续下一步)


方案一:使用 Docker Desktop for Windows(推荐用于开发/测试)

这是最简便的方式,类似于在普通 Windows 10/11 上安装 Docker,但需要确认云服务器的兼容性。

  1. 下载
    访问 Docker 官网下载页,下载 Docker Desktop.exe
    注意:Windows Server 2022 可能需要下载较新的 Beta 版本或通过 GitHub 获取特定构建版,因为正式版有时对 Server 的支持滞后。

  2. 安装与配置

    • 运行安装程序。
    • 在安装向导中,务必勾选 "Use WSL 2 instead of Hyper-V"(如果可用)或直接使用默认的 Hyper-V 模式。
    • 对于云服务器,通常建议使用 Hyper-V 后端,因为 WSL 2 在云端虚拟环境中可能面临网络 NAT 或资源限制问题。
  3. 启动验证
    安装完成后启动 Docker Desktop,等待托盘图标变绿。打开 PowerShell 输入:

    docker run hello-world

    如果看到欢迎信息,则安装成功。

⚠️ 重要提示:Docker Desktop 包含图形界面和大量后台服务,不建议在纯生产环境的无头(Headless)服务器上长期使用,因为它会占用较多资源且依赖 GUI 组件。


方案二:使用 Docker Engine Standalone(推荐用于生产环境)

如果你需要在生产环境中运行容器,或者服务器没有图形界面,推荐使用此方案。它基于 Windows Container 技术(注意:不是 Linux 容器,除非你开启了 WSL2 或双栈)。

步骤 1:安装 .NET Framework 4.8 及后续依赖

Docker Engine 依赖于特定的运行时环境。

# 启用 .NET Framework 4.8 (如果未安装)
Enable-WindowsOptionalFeature -Online -FeatureName NetFx4Extended-ASPNET45 -All

步骤 2:下载并安装 Docker MSI

前往 Docker Hub Windows 镜像页面 或 Docker 官方文档获取 docker-<version>.msi

  • 如果没有直接链接,可以通过 PowerShell 脚本自动下载最新稳定版(示例):
    # 这是一个通用下载脚本逻辑,具体版本号请以官网为准
    $url = "https://download.docker.com/win/static/stable/x86_64/docker-24.0.7-ce.zip" 
    # 注意:Windows Server 上通常直接使用 msi 安装包,而非 zip

    更稳妥的方式:直接去 Docker Engine for Windows 下载页 寻找 "Docker Engine for Windows" 的 MSI 安装包。

步骤 3:安装 Docker Engine

以管理员身份运行 PowerShell,导航到 MSI 所在目录并执行:

# 假设文件名为 docker-24.0.7.msi
Start-Process msiexec.exe -ArgumentList "/i docker-24.0.7.msi /qn" -Wait

(参数 /qn 表示静默安装,可根据需要移除)

步骤 4:验证安装

docker --version
docker info

此时,Docker 默认运行的是 Windows 容器


🐧 进阶:如何在 Windows Server 2022 上运行 Linux 容器?

很多用户希望 Windows Server 跑 Linux 镜像(如 Ubuntu, CentOS),但上述方案二默认只支持 Windows 容器。要在 Windows Server 上运行 Linux 容器,你有两个选择:

  1. 使用 WSL 2 (推荐)

    • 在 Windows Server 2022 上启用 WSL 2 内核。
    • 安装一个 Linux 发行版(如 Ubuntu)。
    • 在 WSL 2 内部安装 Docker Engine。
    • 优点:性能接近原生,资源隔离好。
    • 缺点:需要配置 WSL 网络,且在某些云厂商环境下配置较复杂。
  2. 使用 Docker Desktop + WSL 2 后端

    • 即使是在生产环境,如果必须跑 Linux 容器且不想折腾 WSL,可以安装 Docker Desktop 并强制指定 WSL 2 后端。
    • 在 Docker Desktop 设置 -> General 中,勾选 "Use the WSL 2 based engine"。

💡 云服务器特别注意事项

  1. 网络端口映射
    云服务器安全组(Security Group)默认可能封锁了 Docker 的 API 端口(2375/2376)或宿主机的映射端口。请务必在云控制台开放相关端口(如 80, 443, 自定义端口等)。

  2. 存储驱动
    Windows Server 默认使用 npipe 进行通信。如果是生产环境,建议将 Docker 数据目录迁移到非系统盘(如 D 盘),避免 C 盘爆满:

    // 创建 C:ProgramDataDockerconfigdaemon.json
    {
      "data-root": "D:\docker-data"
    }

    修改后重启 Docker 服务:Restart-Service docker

  3. 替代方案考虑
    如果你的业务主要是 Web 服务或微服务,且不需要在 Windows 宿主机上运行,强烈建议放弃在 Windows Server 上直接跑 Docker,转而:

    • 在云平台上部署 Linux 虚拟机Kubernetes 集群
    • 使用 Azure/AWS/GCP 的托管 Kubernetes 服务
    • 原因:Windows 容器的生态支持不如 Linux 完善,且维护成本较高。

总结

  • 开发/测试:直接安装 Docker Desktop,选择 Hyper-V 后端。
  • 生产环境 (Windows 容器):安装 Docker Engine MSI,配置静态 IP 和安全组。
  • 生产环境 (Linux 容器):建议在云服务器上直接部署 Linux 系统,或在 Win2022 上配置 WSL 2 + Docker
未经允许不得转载:CLOUD技术博 » 云服务器Windows Server 2022安装docker?