在 Windows Server 2022 上部署 Docker 环境,推荐使用 Docker Desktop for Windows(适用于专业版/企业版)或 Docker Engine on Windows Server(适用于数据中心场景)。以下是两种主流方案的详细步骤:
✅ 方案一:使用 Docker Desktop for Windows(推荐用于开发/测试/小规模生产)
⚠️ 注意:Docker Desktop 需安装 WSL 2 后端(Windows Subsystem for Linux),且要求系统为 Windows Server 2022 Standard/Datacenter 64位,并启用 Hyper-V 和 WSL 功能。
步骤 1:确认系统要求
- 操作系统:Windows Server 2022(Standard 或 Datacenter,64位)
- 已启用以下功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux - 重启服务器使更改生效
- 确保 BIOS 中启用了虚拟化(VT-x / AMD-V)
步骤 2:安装 WSL 2 内核更新(如未自动安装)
从微软官网下载最新 WSL 2 内核更新包:
👉 https://aka.ms/wsl2kernel
运行 .msi 安装包,然后重启。
步骤 3:设置默认 WSL 发行版为 WSL 2
wsl --set-default-version 2
步骤 4:下载并安装 Docker Desktop
-
访问官方下载页:https://www.docker.com/products/docker-desktop/
-
选择 Windows Server 2022 版本(通常与桌面版兼容,但建议确认兼容性列表)
📌 提示:Docker Desktop 对 Server 系统的支持有限,部分高级功能(如 Kubernetes、GPU 提速)可能受限。若用于生产,更推荐方案二。
-
运行安装程序,按向导完成安装(勾选“Use WSL 2 instead of Hyper-V”)
-
安装完成后启动 Docker Desktop,等待初始化完成(右下角托盘图标显示绿色鲸鱼)
步骤 5:验证安装
打开 PowerShell(以管理员身份):
docker version
docker run hello-world
若看到欢迎信息,则部署成功。
✅ 方案二:使用 Docker Engine on Windows Server(推荐用于生产环境)
🔐 优势:无 GUI 依赖、轻量、更适合服务器自动化部署;通过
Docker CE+Containerd原生支持。
步骤 1:准备环境
- 确保系统是 Windows Server 2022 64位
- 启用必要组件:
Install-WindowsFeature -Name Containers, RSAT-ADDS注:
Containers功能包含 Hyper-V 容器支持;若需 Windows 容器,无需额外配置;若需 Linux 容器,需搭配 WSL 2 或第三方 shim(不推荐生产用 Linux 容器直接跑在 Server 上,除非有明确需求)
✅ 实际生产中,Windows Server 2022 主要运行 Windows 容器(基于 .NET/ASP.NET Core 等),Linux 容器通常建议迁移到 Linux VM 或 K8s 集群。
步骤 2:下载 Docker Engine MSI
前往微软官方镜像源(稳定版):
- 稳定版(Stable):https://download.docker.com/win/static/stable/x86_64/
- 或使用 Chocolatey 安装(推荐):
方法 A:使用 Chocolatey(简化流程)
# 先安装 Chocolatey(若无)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# 安装 Docker Engine
choco install docker-engine -y
方法 B:手动下载 MSI
- 访问:https://download.docker.com/win/static/stable/x86_64/
- 下载类似
docker-ce-<version>.amd64.msi文件(例如docker-ce-24.0.7.1-amd64.msi) - 双击安装,按向导完成(默认选项即可)
步骤 3:配置 Docker(可选但推荐)
编辑配置文件 C:ProgramDataDockerconfigdaemon.json(首次运行会自动创建):
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
替换为你的国内镜像提速地址(如阿里云:
https://<your-id>.mirror.aliyuncs.com)
步骤 4:启动 Docker 服务
Start-Service Docker
Set-Service Docker -StartupType Automatic
步骤 5:验证安装
docker version
docker info
docker run mcr.microsoft.com/windows/nanoserver:ltsc2022 echo "Hello from Windows!"
💡 注意:Windows 容器镜像必须匹配宿主机的版本(如 LTSC 2022),否则无法运行。
🔒 安全加固建议(生产环境必做)
| 措施 | 操作 |
|---|---|
| 禁用非必需端口 | 仅开放 2375/2376(受 TLS 保护),避免暴露 2375 明文 |
| 启用 TLS 认证 | 生成证书并配置 DOCKER_TLS_CERTDIR |
| 限制用户权限 | 将 docker 组最小化,避免普通用户加入 |
| 定期更新 | 订阅 Docker Release Notes 及时打补丁 |
| 监控日志 | 配置 Event Viewer 或 SIEM 收集 Docker 相关事件 |
❓ 常见问题排查
| 问题 | 解决方案 |
|---|---|
Cannot connect to the Docker daemon |
检查服务是否运行:Get-Service Docker |
| 拉取镜像失败 | 检查X_X/防火墙;配置镜像提速器 |
Windows 容器报错 0x80070057 |
确认主机与容器 OS 版本一致(如都使用 LTSC 2022) |
| WSL 2 模式卡住 | 执行 wsl --shutdown 后重试 |
需要我提供:
- 自动化部署脚本(PowerShell/Ansible)?
- Kubernetes + Docker 集成指南?
- Windows/Linux 混合容器最佳实践?
欢迎告诉我你的具体场景(开发/测试/生产?单节点/集群?),我可进一步定制方案。
CLOUD技术博