在 Windows Server 2022 数据中心版上部署 Docker,目前最推荐且官方支持的方式是使用 Docker Desktop for Windows(针对开发环境)或 Docker Engine + Containerd(针对生产/服务器环境)。
鉴于你提到的是“数据中心版”和“云服务器操作系统”,这通常意味着这是一个面向生产环境的场景。因此,我将重点介绍生产环境标准部署方案,即通过 PowerShell 安装 Docker Engine。这种方式更轻量、更适合自动化运维和长期运行。
一、前置条件检查
-
操作系统版本:确保是 Windows Server 2022 Datacenter Edition(非 Core 版本也可,但 GUI 版本资源占用略高)。
-
启用容器功能:Windows 需要启用“容器”功能模块。
-
Hyper-V 或 WSL2:
- Docker Desktop 默认使用 Hyper-V 隔离。
- 如果使用 Docker Engine + Containerd,建议使用 WSL2 后端 以获得更好的性能和兼容性,尤其是 Linux 容器。
-
⚠️ 注意:Windows Server 2022 原生支持 Linux 容器(通过 Moby 引擎),但微软已逐步转向推荐使用 Containerd + WSL2 的架构以提升稳定性和性能。
-
网络配置:确保服务器能访问互联网以拉取镜像,或配置好内部镜像仓库。
二、生产环境部署步骤(推荐: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 配置文件来启用它。
-
编辑 Docker 配置文件:
notepad "$env:ProgramDatadockerconfigdaemon.json" -
添加以下内容(如果文件为空,则写入整个 JSON):
{ "features": { "containerd-snapshotter": true } } -
重启 Docker 服务使配置生效:
Restart-Service docker -
验证是否成功切换到 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:
- 下载 Docker Desktop
- 安装时选择 “Use WSL 2 instead of Hyper-V”(推荐)
- 启动后,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)验证镜像签名。
- 限制容器网络权限,避免暴露不必要的端口。
五、国内云厂商注意事项(如阿里云、腾讯云、华为云等)
如果你是在国内公有云上部署:
-
镜像提速:
- 阿里云:配置 ACR 个人实例 + 镜像提速器
- 腾讯云:使用 TCR 私有仓库 + 内网提速
- 华为云:SWR 容器镜像服务
-
内核兼容性:
- 国内云厂商提供的 Windows Server 镜像通常已预装基本容器支持,但仍建议手动升级 Docker 到最新版本。
-
License 合规:
- 确保使用的 Docker 版本符合商业许可要求,特别是企业级部署时。
总结
| 场景 | 推荐方案 | 优点 |
|---|---|---|
| 生产服务器 | Docker Engine + Containerd | 轻量、稳定、易管理、适合 CI/CD |
| 开发测试 | Docker Desktop | 图形化、易用、集成 WSL2 |
| 混合容器需求 | 启用 experimental 模式 | 支持 Win/Linux 容器共存 |
对于 Windows Server 2022 数据中心版,强烈建议采用 Docker Engine + Containerd 的生产部署方式,并配合 WSL2 后端以获得最佳兼容性和性能表现。
CLOUD云枢