在 Windows Server 2022 上安装 Docker,主要有两种主流方式:Docker Desktop(适合开发/测试环境)和 Docker Engine(适合生产环境,通过容器引擎直接运行)。
由于 Windows Server 2022 默认使用的是 Hyper-V 技术,而 Docker Desktop 依赖 WSL 2 或 Hyper-V 后端,因此在服务器版上操作时需要注意系统版本和功能开启情况。
以下是针对这两种场景的详细操作步骤:
方案一:使用 Docker Desktop for Windows(推荐用于开发/测试)
这是最简便的方式,它集成了图形界面、WSL 2 集成和完整的工具链。
1. 前置条件检查
- 操作系统要求:确保已安装 Windows Server 2022 的最新版(建议安装所有最新更新)。
- 虚拟化支持:BIOS/UEFI 中必须开启虚拟化技术(Intel VT-x / AMD-V),且已在 Windows 中启用“虚拟机平台”功能。
- 以管理员身份运行 PowerShell,执行以下命令开启必要功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform Enable-WindowsOptionalFeature -Online -FeatureName Containers - 重启服务器。
- 以管理员身份运行 PowerShell,执行以下命令开启必要功能:
2. 下载与安装
- 访问 Docker 官网下载页面:https://www.docker.com/products/docker-desktop/
- 选择 Windows (x64) 版本的
.msi安装包进行下载。- 注意:如果下载器提示需要 WSL 2,请先确保 WSL 2 已安装(见下文步骤3)。
- 运行安装程序,按照向导完成安装。
3. 配置 WSL 2 后端(关键步骤)
Docker Desktop 在 Windows Server 上通常强制使用 WSL 2 作为后端。
- 打开 PowerShell(管理员),设置默认版本为 WSL 2:
wsl --set-default-version 2 - 首次启动 Docker Desktop 时,它会自动检测并引导你安装 Linux 发行版(如 Ubuntu)。
- 启动 Docker Desktop 应用程序,等待右下角托盘图标变为绿色(表示正在初始化)。
- 打开命令行输入
docker --version,若显示版本号则安装成功。
方案二:使用 Docker Engine(推荐用于生产环境)
如果你不需要图形界面,或者希望更轻量级地运行容器,可以直接安装 Docker Engine。这种方式在服务器上性能更好,资源占用更少。
1. 准备脚本
微软官方提供了自动化的安装脚本,可以自动处理依赖项(如 .NET Runtime, WinRM 等)。
- 以管理员身份打开 PowerShell。
- 运行以下命令下载并执行安装脚本(从微软官方源获取):
$script = @" $ErrorActionPreference = 'Stop' Set-ExecutionPolicy Bypass -Scope Process -Force [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 iex ((New-Object System.Net.WebClient).DownloadString('https://aka.ms/install-docker.ps1')) "@ Invoke-Expression $script注:如果上述长脚本执行失败,也可以手动分步执行,先确保安装了 .NET 6.0 运行时和 WinRM 服务。
2. 验证安装
安装完成后,验证 Docker 是否正常运行:
docker run hello-world
如果看到 "Hello from Docker!" 字样,说明安装成功。
3. 配置镜像提速(国内用户必做)
由于网络原因,直接从 Docker Hub 拉取镜像可能非常慢。建议配置国内镜像提速器。
- 创建或编辑配置文件
C:ProgramDatadockerconfigdaemon.json。- 如果文件不存在,请新建一个。
- 添加以下内容(替换为你自己的提速器地址,例如阿里云、腾讯云或 DaoCloud):
{ "registry-mirrors": [ "https://<你的专属提速地址>.mirror.aliyuncs.com" ] } - 重启 Docker 服务使配置生效:
Restart-Service docker
常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无法启动容器 | Hyper-V 未开启 | 确认已执行 Enable-WindowsOptionalFeature 并重启了服务器。 |
| WSL 2 报错 | 内核未更新 | 运行 wsl --update 更新 WSL 内核。 |
| 权限拒绝 | 非管理员运行 | 务必以“管理员身份”运行 PowerShell 或 CMD。 |
| 网络不通 | 防火墙拦截 | 检查 Windows 防火墙规则,确保允许 Docker 相关端口。 |
| 中文乱码 | 区域设置问题 | 尝试在容器内设置环境变量 LANG=zh_CN.UTF-8。 |
总结建议
- 如果是个人学习、本地开发或临时测试:请直接使用 Docker Desktop,虽然资源占用稍高,但管理方便,支持 GUI。
- 如果是正式的生产环境服务器:建议使用 Docker Engine(方案二),避免图形界面带来的额外开销和安全风险,同时配合 CI/CD 流程管理容器。
安装完成后,你可以尝试运行一个简单的 Nginx 容器来验证:
docker run -d -p 80:80 --name my-web nginx
然后在浏览器访问 http://localhost 即可看到 Nginx 欢迎页。
CLOUD云计算