在 Windows Server 2022 上搭建 Docker,目前最推荐的方式是使用 Docker Desktop(它基于 WSL 2 后端),或者使用传统的 Docker Engine for Windows。
考虑到 Windows Server 2022 通常用于生产环境或服务器场景,且对稳定性要求较高,以下是两种主流方案的详细步骤。
⚠️ 前置检查(至关重要)
在开始之前,请确保你的系统满足以下核心条件:
- 操作系统版本:必须是 Windows Server 2022 的完整版(非 Core 模式,除非你通过命令行手动配置)。
- 虚拟化支持:BIOS/UEFI 中必须开启 Intel VT-x / AMD-V 虚拟化技术。
- 功能启用:必须安装并启用以下 Windows 功能:
Containers(容器)Microsoft-Hyper-V-All(Hyper-V)VirtualMachinePlatform(虚拟机平台)
- WSL 2 后端:如果使用 Docker Desktop,强烈建议安装 WSL 2 内核。
方案一:使用 Docker Desktop(推荐,适合大多数场景)
这是最简单、维护成本最低的方式,界面友好,自动处理网络和管理。
1. 下载与安装
- 访问 Docker 官网下载页面,选择 Windows Server 版本的 Docker Desktop(注意:如果是生产环境,可能需要确认 License 协议,Docker Desktop 免费用于开发/测试,商业用途需订阅)。
- 注:如果无法直接下载 Server 版,可以使用通用的 Windows x64 安装包,但在 Server 上运行时需注意兼容性。
- 运行安装程序 (
Docker-Desktop-installer.exe)。 - 在安装向导中,确保勾选 "Use WSL 2 instead of Hyper-V"(使用 WSL 2 后端),这在 Server 2022 上性能更好。
- 点击 Install 并等待完成,最后重启服务器。
2. 验证安装
打开 PowerShell(管理员身份),输入:
docker --version
docker run hello-world
如果看到 "Hello from Docker!" 字样,说明安装成功。
3. 配置镜像提速(国内环境必做)
由于默认拉取 Docker Hub 速度极慢,需要配置镜像提速器。
- 右键点击任务栏托盘中的 Docker 图标 -> Settings (设置)。
- 进入 Resources -> Docker Engine。
- 在 JSON 配置文件中添加
registry-mirrors字段(示例地址,请替换为你自己的稳定源,如阿里云、腾讯云等):{ "registry-mirrors": [ "https://<你的提速域名>.mirror.aliyuncs.com" ] } - 点击 Apply & Restart。
方案二:使用 Docker Engine(适合纯后台/无 GUI 环境)
如果你不想安装图形界面的 Docker Desktop,或者需要在无头模式下运行,可以手动安装 Docker Engine。
1. 启用必要功能
以管理员身份运行 PowerShell,执行以下命令启用所需功能:
Install-WindowsFeature -Name Containers -IncludeManagementTools
Restart-Computer # 建议重启一次以确保 Hyper-V 生效
2. 安装 WSL 2 内核(可选但推荐)
虽然 Docker Engine 可以直接用 Hyper-V,但配合 WSL 2 更现代。
wsl --install -d Ubuntu
# 或者仅更新内核
wsl --update
3. 下载并安装 Docker Engine
- 访问 Docker 官方 GitHub Releases 页面,找到 docker-ce 和 docker-cli 的 MSI 安装包。
- 文件名类似:
docker-24.x.x-ce_x64.msi
- 文件名类似:
- 使用命令行静默安装(将版本号替换为实际下载的最新版):
msiexec /i docker-24.0.5-ce_x64.msi ADDLOCAL=Engine,CLI,Docker-Plugin /qn参数说明:
ADDLOCAL指定安装组件,/qn表示静默安装。
4. 启动服务
Start-Service docker
Set-Service -Name docker -StartupType Automatic
5. 验证
docker version
docker info
常见问题与注意事项
-
权限问题:
在 Windows Server 上,普通用户可能无法运行 Docker 命令。你需要将当前用户加入docker-users组,或者始终以“管理员”身份运行 PowerShell。New-LocalGroup -Name docker-users Add-LocalGroupMember -Group docker-users -Member <你的用户名> -
网络配置:
Docker 默认创建的nat网络可能与某些企业防火墙冲突。如果容器无法上网,可能需要调整 DNS 设置或在daemon.json中配置dns。 -
资源限制:
Windows Server 的资源(CPU/内存)分配给 Docker 时,请注意不要超过物理机限制。在 Docker Desktop 的 Settings -> Resources 中可以调整 CPU 和内存上限。 -
License 合规性:
- Docker Desktop:对于小型团队(<10 人)或非商业内部工具,免费版可用。如果用于大型商业生产环境,请务必购买 Docker Pro/Business 订阅。
- Docker Engine:开源免费,适合生产环境部署,没有人数限制,是生产服务器的首选方案。
总结建议
- 如果是开发测试、学习或小规模应用:直接使用 Docker Desktop,配置简单,生态完善。
- 如果是正式生产环境、高并发或无 GUI 服务器:建议使用 Docker Engine + WSL 2 或 Hyper-V 模式,避免图形界面带来的额外资源消耗和维护风险。
轻量云Cloud