在 Windows Server 2022 上部署 Docker 是完全可行的,但需要注意一个核心前提:Docker 在 Windows 上默认运行的是基于 Hyper-V 的 Linux 容器(通过 WSL2 或传统 Hyper-V 虚拟机)。
如果你需要部署Linux 容器(绝大多数 Docker 镜像都是为 Linux 设计的),Windows Server 2022 提供了两种主要方案:
- WSL 2 (推荐):性能更好,资源占用更低,是微软当前的首选方案。
- Hyper-V 模式:传统的容器化方式,适合完全隔离的环境。
以下是基于 WSL 2 + Docker Desktop 的标准部署流程,这是目前最稳定且易于维护的方式。
第一步:启用必要的系统功能
在开始安装之前,必须确保服务器已开启虚拟化和 WSL 支持。请打开 PowerShell (管理员身份) 并执行以下命令:
# 启用 WSL 和虚拟化平台
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重启服务器以应用更改
Restart-Computer
注意:如果你的服务器是纯物理机或云厂商提供的特定环境,请确认 BIOS/UEFI 中已开启 VT-x/AMD-V 虚拟化技术。
第二步:下载并安装 WSL 2 内核
虽然较新的 Windows Server 版本可能自带内核,但为了稳定性,建议手动更新到最新的 WSL 2 内核。
- 访问微软官方下载页:https://aka.ms/wsl2kernel
- 下载
wsl_update_x64.msi安装包。 - 双击运行进行安装。
- 安装完成后再次重启服务器。
第三步:设置默认发行版为 WSL 2
重启后,将默认的 WSL 版本设置为 2:
wsl --set-default-version 2
第四步:安装 Docker Desktop for Windows
由于 Docker Desktop 是图形化界面软件,它会自动处理底层的配置。
- 下载:前往 Docker Hub 下载 Docker Desktop for Windows。
- 注意:请确保你的 Windows Server 2022 版本满足 Docker Desktop 的系统要求(通常需要较新的构建版本)。如果 Docker Desktop 无法安装,你可能需要考虑使用
Docker Engine的命令行版本(见下文“替代方案”)。
- 注意:请确保你的 Windows Server 2022 版本满足 Docker Desktop 的系统要求(通常需要较新的构建版本)。如果 Docker Desktop 无法安装,你可能需要考虑使用
- 安装:运行安装程序,按照向导操作。
- 在安装过程中,确保勾选 "Use WSL 2 instead of Hyper-V"(使用 WSL 2 而不是 Hyper-V)。
- 启动:安装完成后启动 Docker Desktop。
- 首次启动时,它会在后台自动下载并初始化一个轻量级的 Linux 发行版(通常是 Ubuntu)。
- 等待状态栏显示 "Docker is running"。
第五步:验证安装
打开 PowerShell 或 CMD,输入以下命令验证:
docker --version
docker run hello-world
如果看到 "Hello from Docker!" 的消息,说明部署成功。
💡 重要提示与替代方案
1. 关于 Linux 容器的兼容性
Windows Server 上的 Docker 默认运行 Linux 容器。如果你尝试运行 mcr.microsoft.com/windows/servercore 这样的 Windows 镜像,你需要在 Docker Desktop 的设置中切换为 "Switch to Windows containers"。但在云服务器生产环境中,强烈建议使用 Linux 容器,因为它们的体积更小、启动更快且生态更丰富。
2. 云服务器环境的特殊性
在阿里云、腾讯云、AWS 等云厂商的 Windows Server 实例上,有时会遇到以下问题:
- 权限限制:部分云主机镜像未预装 Hyper-V 组件或禁用了虚拟化功能。
- 资源限制:Docker Desktop 对内存有一定要求(通常至少 4GB+),低配实例可能会卡顿。
3. 替代方案:仅安装 Docker Engine (无 GUI)
如果你不需要图形界面,或者 Docker Desktop 在服务器上运行不稳定,可以直接安装 Docker Engine for Windows(旧称 Docker CE),但这通常需要通过脚本或特定的 MSI 包进行配置,且配置过程比 Docker Desktop 复杂得多。
对于大多数云服务器场景,如果 Docker Desktop 不可用,建议考虑:
- 方案 A:直接在云服务器上部署 WSL 2 + 原生 Linux 发行版(如 Ubuntu),然后在 Linux 内部运行 Docker。这是性能最好、最稳定的方式。
- 方案 B:使用 Docker Compose 配合
docker-machine(较少用)或直接通过远程连接管理 Linux 宿主机。
总结
对于 Windows Server 2022 云服务器:
- 首选:启用 WSL 2 -> 安装 Docker Desktop -> 使用 Linux 容器。
- 关键检查:确保云服务商允许虚拟化扩展,且服务器配置足够支撑 WSL 2 的开销。
- 避坑:不要试图在 Windows 容器模式下运行大量微服务,Linux 容器模式是行业标准。
CLOUD云计算