在 Windows Server 2022 上搭建 Docker,最推荐且官方支持的方式是使用 Docker Desktop for Windows。不过,由于 Server 版本通常作为无头服务器(Headless)运行,且可能没有图形界面或桌面组件,我们需要根据具体环境选择方案。
以下是两种主要场景的搭建步骤:
前置条件检查
无论使用哪种方式,请确保您的系统满足以下要求:
- 操作系统:Windows Server 2022 (Standard or Datacenter)。
- 虚拟化支持:BIOS/UEFI 中必须开启 Intel VT-x / AMD-V 虚拟化技术。
- 功能启用:
- 打开“服务器管理器” -> “添加角色和功能”。
- 在“功能”列表中,勾选 容器 (Containers) 和 Hyper-V(如果使用 Hyper-V 后端)。
- 或者直接使用 PowerShell 命令快速启用:
Install-WindowsFeature -Name Containers -IncludeManagementTools Restart-Computer
方案一:使用 Docker Desktop for Windows(推荐,适合有 GUI 环境)
如果您的 Server 安装了桌面体验(Desktop Experience),这是最简单的安装方式,它会自动配置 WSL2 后端。
- 下载安装程序:
- 访问 Docker 官网下载页。
- 下载
Docker Desktop Installer.exe。
- 执行安装:
- 双击运行安装程序。
- 在安装向导中,务必勾选 "Use WSL 2 instead of Hyper-V"(WSL 2 性能更好,兼容性更佳)。
- 点击 "Install" 并等待完成。
- 启动与验证:
- 安装完成后,Docker Desktop 会在后台自动启动。
- 打开 PowerShell,输入以下命令验证:
docker --version docker run hello-world - 如果看到 "Hello from Docker!" 字样,说明安装成功。
注意:如果您是在纯命令行模式(Server Core)下运行,此方法无法直接通过图形界面操作,但安装程序仍可在后台静默运行,或者您需要先安装远程桌面连接来管理。
方案二:使用 NCC (Native Container) + CLI(适合无 GUI/Server Core 环境)
如果您使用的是 Server Core 版本(无图形界面),或者希望以轻量级服务形式运行,不建议安装完整的 Docker Desktop(因为它依赖 GUI 组件),而是应该安装 Docker Engine 并通过命令行管理。
注:微软官方对 Windows Server 原生 Docker Engine 的支持已逐渐转向集成到 WSL2 或推荐使用 Docker Desktop 的无头模式,但在某些旧版文档或特定需求下,可以通过以下步骤尝试原生安装:
步骤 1:启用必要的角色
Install-WindowsFeature -Name Containers -IncludeManagementTools
步骤 2:下载并安装 Docker Engine MSI
由于官方不再直接提供独立的 Docker Engine MSI 供 Server 安装(现已整合进 Docker Desktop 架构),对于 Server 环境,最佳实践依然是安装 Docker Desktop 并在后台运行,或者使用 WSL2 子系统。
推荐做法(WSL2 模式下的无头部署):
- 安装 WSL2 内核更新:
wsl --install # 重启后,默认会安装 Ubuntu 发行版 - 在 WSL2 内部安装 Docker:
进入 WSL2 终端(如 Ubuntu):curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER newgrp docker - 从 Windows 调用 WSL2 中的 Docker:
现在您可以在 Windows PowerShell 中直接运行docker命令,它会自动转发到 WSL2 环境中执行。docker run hello-world
常见问题与优化建议
-
内存不足:
Docker Desktop 默认可能会占用较多内存。如果是生产环境,建议在设置中限制资源:- 右键任务栏 Docker 图标 -> Settings -> Resources。
- 调整 CPU 和内存限制。
-
网络问题:
如果在服务器上无法拉取镜像(Docker Hub 连接超时),需要配置国内镜像提速器。- 编辑
%ProgramData%dockerconfigdaemon.json(路径可能因安装位置不同而异)。 - 添加以下内容(以阿里云为例):
{ "registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"] } - 然后重启 Docker 服务:
Restart-Service docker。
- 编辑
-
权限问题:
在 Server 环境下,如果没有将当前用户加入docker-users组,可能需要以管理员身份运行 PowerShell。
总结
- 如果有图形界面:直接下载 Docker Desktop 并勾选 WSL2,最简单稳定。
- 如果是纯命令行 (Server Core):强烈建议安装 WSL2,然后在 WSL2 内部安装 Docker Engine,最后通过 Windows 命令行调用。这是目前 Windows Server 上最稳健的无头部署方案。
云知识CLOUD