在Windows Server 2022上如何部署Docker环境?

在 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

  1. 访问官方下载页:https://www.docker.com/products/docker-desktop/

  2. 选择 Windows Server 2022 版本(通常与桌面版兼容,但建议确认兼容性列表)

    📌 提示:Docker Desktop 对 Server 系统的支持有限,部分高级功能(如 Kubernetes、GPU 提速)可能受限。若用于生产,更推荐方案二

  3. 运行安装程序,按向导完成安装(勾选“Use WSL 2 instead of Hyper-V”)

  4. 安装完成后启动 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

  1. 访问:https://download.docker.com/win/static/stable/x86_64/
  2. 下载类似 docker-ce-<version>.amd64.msi 文件(例如 docker-ce-24.0.7.1-amd64.msi
  3. 双击安装,按向导完成(默认选项即可)

步骤 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技术博 » 在Windows Server 2022上如何部署Docker环境?