在 Windows Server 2022 上安装 Docker 和 Docker Compose,最推荐且稳定的方式是使用 Docker Desktop for Windows(注意:需要付费许可用于生产环境,或者仅用于开发/测试)。
不过,由于 Windows Server 通常运行在生产环境,官方更推荐使用 Docker Engine (Windows) 配合 Swarm/Kubernetes 模式,或者通过 WSL 2 后端运行。
以下是两种主流方案的详细步骤:
方案一:使用 Docker Desktop for Windows(适合开发、测试或小型部署)
这是最简单的方法,图形化界面友好,自动集成 Docker Compose。
1. 前置要求
- 操作系统:Windows Server 2022 (建议更新到最新补丁)。
- 虚拟化:必须开启 Hyper-V 和容器功能。
- 打开 PowerShell (管理员),运行以下命令启用容器功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All Enable-WindowsOptionalFeature -Online -FeatureName Containers - 重启服务器。
- 打开 PowerShell (管理员),运行以下命令启用容器功能:
- WSL 2:Docker Desktop 依赖 WSL 2 后端。
- 确保已安装 WSL 2。如果未安装,运行:
wsl --install # 或者直接指定版本 wsl --set-default-version 2
- 确保已安装 WSL 2。如果未安装,运行:
2. 下载与安装
- 访问 Docker Desktop 官网 下载 Windows 版本。
- 注意:如果是商业生产环境,请确认您的许可证合规性(个人/非商业用途免费,商业用途需订阅)。
- 运行安装包,按照向导完成安装。
- 安装完成后,重启电脑。
3. 验证安装
打开 PowerShell,输入以下命令:
docker --version
docker compose version
如果显示版本号,说明安装成功。此时 Docker Desktop 会在系统托盘运行。
方案二:使用 Docker Engine + CLI(适合纯生产环境,无 GUI)
如果你不需要图形界面,且希望像 Linux 一样轻量级运行,可以使用 Docker Engine for Windows。这种方式下,docker-compose 通常作为独立的二进制文件或插件存在。
1. 启用容器功能
同方案一,以管理员身份运行 PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers
Restart-Computer
2. 安装 Docker Engine
目前微软官方主要通过 GitHub Release 或 Chocolatey 提供 Docker Engine for Windows。
方法 A:使用 Chocolatey (推荐)
- 如果未安装 Chocolatey,先安装它(参考官网)。
- 以管理员身份运行 PowerShell:
choco install docker-engine -y这将安装 Docker 守护进程和 CLI。
方法 B:手动下载安装包
- 访问 Docker Engine Windows GitHub Releases (注意:Docker 官方已不再直接维护 Windows Server 的独立引擎包,更多转向 Containerd 或 K8s,但微软社区仍有镜像)。
- 更稳妥的方式是使用微软官方的 Container Host 或通过
winget安装:winget install Docker.DockerDesktop # 或者寻找特定的 engine 版本 MSI(注:由于 Windows Server 2022 对原生 Docker Engine 的支持逐渐向 WSL 2 靠拢,方案一通常更稳定。如果必须用无头模式,建议直接在 WSL 2 子系统内安装 Docker Engine)。
3. 安装 Docker Compose
在较新的 Docker 版本中,Compose 已经集成在 Docker CLI 中(即 docker compose),而不是单独的 docker-compose.exe。
-
检查是否内置:
docker compose version如果提示“未识别”,则说明版本较旧,需要单独安装。
-
手动安装 Docker Compose (v2):
- 从 GitHub 下载二进制文件:Docker Compose v2 Release。
- 下载
docker-compose-windows-amd64.exe。 - 将其移动到 Docker 的 bin 目录(通常是
C:Program FilesDockercli-plugins或C:Program FilesDockerbin)。 - 确保文件名是
docker-compose.exe(为了兼容旧脚本) 或保持docker-compose-v2.exe并在调用时使用docker compose。
推荐做法(统一使用 v2 命令):
将下载的docker-compose.exe重命名为docker-compose.exe并放入C:Program FilesDockercli-plugins目录下。这样你就可以直接使用docker compose up。
常见问题与最佳实践
-
权限问题:
- 在 Windows Server 上,某些操作可能需要管理员权限。
- 如果使用
docker run挂载卷,确保宿主机文件夹有正确的 NTFS 权限。
-
网络配置:
- Windows Server 默认可能没有配置外部网络。如果需要容器访问网络,确保 Docker 的网络适配器(Virtual Switch)已正确绑定到物理网卡。
-
生产环境建议:
- 不要在生产环境中长期使用 Docker Desktop(因为它包含 GUI 组件且资源占用较高,且有授权限制)。
- 推荐架构:在 Windows Server 2022 上安装 WSL 2 发行版(如 Ubuntu),然后在 WSL 2 内部安装 Docker Engine 和 Compose。这样既利用了 Linux 内核的优势,又保持了 Windows Server 的管理便利性。
-
WSL 2 内部安装示例:
# 进入 WSL (Ubuntu) wsl # 在 WSL 内部执行安装脚本 curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
总结
- 快速上手/开发:选择 方案一 (Docker Desktop)。
- 生产环境/无头模式:建议在 WSL 2 内部安装 Docker Engine,或者严格评估 方案二 的兼容性。
安装完成后,你可以创建一个简单的 docker-compose.yml 进行测试:
version: '3'
services:
web:
image: nginx:alpine
ports:
- "80:80"
运行 docker compose up -d 即可启动。
CLOUD云计算