在Windows Server 2022数据中心版上如何部署Docker容器?

在 Windows Server 2022 数据中心版上部署 Docker,目前最推荐且官方支持的方式是使用 Docker Desktop for Windows(针对开发环境)或 Docker Engine + Containerd(针对生产/服务器环境)。

鉴于你提到的是“数据中心版”和“云服务器操作系统”,这通常意味着这是一个面向生产环境的场景。因此,我将重点介绍生产环境标准部署方案,即通过 PowerShell 安装 Docker Engine。这种方式更轻量、更适合自动化运维和长期运行。


一、前置条件检查

  1. 操作系统版本:确保是 Windows Server 2022 Datacenter Edition(非 Core 版本也可,但 GUI 版本资源占用略高)。

  2. 启用容器功能:Windows 需要启用“容器”功能模块。

  3. Hyper-V 或 WSL2:

    • Docker Desktop 默认使用 Hyper-V 隔离。
    • 如果使用 Docker Engine + Containerd,建议使用 WSL2 后端 以获得更好的性能和兼容性,尤其是 Linux 容器。
    • ⚠️ 注意:Windows Server 2022 原生支持 Linux 容器(通过 Moby 引擎),但微软已逐步转向推荐使用 Containerd + WSL2 的架构以提升稳定性和性能。

  4. 网络配置:确保服务器能访问互联网以拉取镜像,或配置好内部镜像仓库。


二、生产环境部署步骤(推荐:Docker Engine + Containerd)

这是当前微软和 Docker 官方推荐的服务器端部署方式,比传统的 Moby 引擎更现代、更安全。

步骤 1:启用必要功能

以管理员身份打开 PowerShell,执行以下命令:

# 启用容器功能
Install-WindowsFeature Containers

# 启用 Hyper-V(如果尚未启用,部分场景下需要)
Install-WindowsFeature Hyper-V -IncludeManagementTools

# 重启系统(可选,但建议重启以确保所有服务正常加载)
Restart-Computer

步骤 2:安装 Docker Engine 和 Containerd

从 Docker 官方源安装最新版:

# 更新包管理器
Install-PackageProvider -Name NuGet -Force
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force

# 验证安装
docker --version

✅ 此时你会看到类似 Docker version 24.x.x, build xxx 的输出。

步骤 3:配置并启动 Docker 服务

默认情况下,Docker 服务可能未自动启动,需手动启动并设置为开机自启:

# 启动 Docker 服务
Start-Service docker

# 设置开机自启
Set-Service -Name docker -StartupType 'Automatic'

步骤 4:切换为 Containerd 后端(关键步骤)

传统 Docker 使用 Moby 引擎,而新架构推荐使用 containerd 作为运行时。你需要修改 Docker 配置文件来启用它。

  1. 编辑 Docker 配置文件:

    notepad "$env:ProgramDatadockerconfigdaemon.json"
  2. 添加以下内容(如果文件为空,则写入整个 JSON):

    {
     "features": {
       "containerd-snapshotter": true
     }
    }
  3. 重启 Docker 服务使配置生效:

    Restart-Service docker
  4. 验证是否成功切换到 containerd:

    docker info | findstr "Storage Driver"

    应显示 storage-driver: overlayfs 或类似信息,表明使用的是现代存储驱动。

步骤 5:测试运行一个容器

# 拉取官方 hello-world 镜像
docker pull hello-world

# 运行容器
docker run hello-world

如果输出中包含 “Hello from Docker!”,说明部署成功。


三、替代方案:使用 Docker Desktop(适用于开发/测试)

如果你是在本地工作站或测试环境中使用,可以选择安装 Docker Desktop for Windows:

  1. 下载 Docker Desktop
  2. 安装时选择 “Use WSL 2 instead of Hyper-V”(推荐)
  3. 启动后,Docker Desktop 会自动配置 WSL2 后端,并提供图形化管理界面。

❗ 注意:Docker Desktop 不适合用于生产服务器,因为它包含额外的 UI 组件和许可证限制(对个人免费,企业需付费)。


四、常见问题与优化建议

1. 如何运行 Linux 容器?

Windows Server 2022 支持混合容器模式,可同时运行 Windows 和 Linux 容器。

  • 运行 Linux 容器:

    docker run --platform linux ubuntu echo "Linux container running on Windows"
  • 运行 Windows 容器:

    docker run --platform windows mcr.microsoft.com/windows/servercore:ltsc2022 cmd /c echo "Windows container"

⚠️ 注意:在同一主机上同时运行两种类型的容器需要启用“实验性功能”。在 daemon.json 中添加:

{
  "experimental": true
}

2. 性能优化建议

  • 使用 SSD 存储:Docker 镜像层复制频繁,SSD 可显著提升 I/O 性能。
  • 调整内存分配:在 daemon.json 中设置最大内存限制:
    {
    "default-runtime": "runc",
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
      "max-size": "10m",
      "max-file": "3"
    },
    "storage-driver": "overlay2"
    }

3. 安全加固

  • 不要以 root 用户运行容器应用。
  • 定期更新 Docker 版本和基础镜像。
  • 使用 Docker Content Trust(DCT)验证镜像签名。
  • 限制容器网络权限,避免暴露不必要的端口。

五、国内云厂商注意事项(如阿里云、腾讯云、华为云等)

如果你是在国内公有云上部署:

  1. 镜像提速:

    • 阿里云:配置 ACR 个人实例 + 镜像提速器
    • 腾讯云:使用 TCR 私有仓库 + 内网提速
    • 华为云:SWR 容器镜像服务
  2. 内核兼容性:

    • 国内云厂商提供的 Windows Server 镜像通常已预装基本容器支持,但仍建议手动升级 Docker 到最新版本。
  3. License 合规:

    • 确保使用的 Docker 版本符合商业许可要求,特别是企业级部署时。

总结

场景 推荐方案 优点
生产服务器 Docker Engine + Containerd 轻量、稳定、易管理、适合 CI/CD
开发测试 Docker Desktop 图形化、易用、集成 WSL2
混合容器需求 启用 experimental 模式 支持 Win/Linux 容器共存

对于 Windows Server 2022 数据中心版,强烈建议采用 Docker Engine + Containerd 的生产部署方式,并配合 WSL2 后端以获得最佳兼容性和性能表现。

未经允许不得转载:CLOUD云枢 » 在Windows Server 2022数据中心版上如何部署Docker容器?