在 Windows Server 2022 上安装 Docker 和 Docker Compose,目前最推荐且官方支持的方式是使用 Docker Desktop for Windows。虽然它通常用于桌面版 Windows,但它也完全兼容 Windows Server 2022(需开启相应的 Hyper-V 功能)。
以下是详细的操作步骤:
前置条件检查
在开始之前,请确保你的 Windows Server 2022 满足以下要求:
- 操作系统版本:必须是 Windows Server 2022 标准版或数据中心版。
- 虚拟化支持:必须启用 Hyper-V 功能。Docker Desktop 依赖 Hyper-V 来运行 Linux 容器。
- 内存与 CPU:建议至少 4GB RAM 和 2 核 CPU(生产环境建议更高)。
- 网络:确保服务器能访问互联网以下载组件。
第一步:启用 Hyper-V 功能
Docker Desktop 需要 Hyper-V 作为后端引擎。你可以通过 PowerShell 快速启用它。
- 以 管理员身份 打开 PowerShell。
- 运行以下命令启用 Hyper-V 及其相关组件(如果尚未安装):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart - 安装完成后,重启服务器以使更改生效。
注意:如果你使用的是 Azure 或其他云服务商的虚拟机,请确认该实例类型支持嵌套虚拟化(Nested Virtualization),否则 Docker Desktop 可能无法启动。
第二步:安装 Docker Desktop
Windows Server 2022 上没有独立的 docker-ce 包管理器(如 Linux 那样),而是通过 Docker Desktop 安装包集成。
-
下载镜像:
前往 Docker 官网下载页面:https://www.docker.com/products/docker-desktop/- 点击 "Download Docker Desktop"。
- 选择 "Windows (Hyper-V)" 版本(不要选 WSL 2 版本,除非你已配置好 WSL 子系统,但在 Server 上 Hyper-V 模式更稳定)。
- 接受许可协议并下载安装程序 (
DockerDesktopInstaller.exe)。
-
执行安装:
- 双击运行安装程序。
- 在安装向导中,确保勾选 "Use WSL 2 instead of Hyper-V" 选项(如果你的系统已安装 WSL 2 且配置良好,可选;但为了兼容性,通常保持默认的 Hyper-V 模式即可,或者根据提示操作)。
- 重要:安装过程中会要求重启计算机,请务必保存工作并重启。
-
首次启动:
- 重启后,Docker Desktop 会自动启动(可能会在后台初始化)。
- 点击任务栏右下角的 Docker 图标,等待状态变为绿色(Running)。
- 首次启动时,它会自动下载基础镜像并配置网络。
第三步:验证安装
打开 PowerShell 或 CMD,输入以下命令检查版本:
docker --version
docker-compose version
- 关于 docker-compose:
较新版本的 Docker Desktop (v20.10+) 已经将docker-compose集成到了 Docker CLI 中。- 尝试运行
docker compose version(注意中间没有连字符)。 - 如果显示版本号,说明集成成功。
- 如果你习惯使用旧命令
docker-compose,Docker Desktop 通常会自动提供兼容脚本,或者你可以手动下载独立的可执行文件(见下文备选方案)。
- 尝试运行
第四步:配置 Docker Compose (如果需要独立二进制文件)
虽然推荐使用 docker compose (新版语法),但如果你必须使用旧的 docker-compose.exe 命令,可以手动安装:
- 下载最新版本的
docker-compose-windows-x86_64.exe(从 GitHub Release 页面:https://github.com/docker/compose/releases)。 - 将下载的文件重命名为
docker-compose.exe。 - 将其移动到
C:Program FilesDocker目录下(或者添加到系统 PATH 环境变量中)。 - 验证:
docker-compose version
常见问题与注意事项
-
权限问题:
在 Windows Server 上,Docker 默认以当前用户上下文运行。如果遇到权限拒绝错误,请确保以管理员身份运行 PowerShell 或命令行。 -
WSL 2 vs Hyper-V:
Docker Desktop 现在默认倾向于使用 WSL 2 后端,性能更好且资源占用更低。如果你的 Server 2022 安装了 WSL 2 子系统(wsl --install),可以在 Docker Desktop 的设置中切换为 WSL 2 模式,这通常比纯 Hyper-V 模式更流畅。- 切换方法:打开 Docker Desktop -> Settings (齿轮图标) -> General -> 勾选 "Use the WSL 2 based engine"。
-
防火墙:
如果 Docker 容器无法访问外部网络,请检查 Windows 防火墙规则,确保允许docker0网桥或相关端口通信。 -
生产环境建议:
Docker Desktop 是免费用于开发和测试的。如果在生产环境中运行,微软建议使用 Azure Arc 或直接在 Linux 容器主机上部署 Docker Engine,因为 Docker Desktop 包含了一些仅适用于桌面的 UI 组件,且其许可证条款对商业生产用途可能有特定限制(具体请参考 Docker 最新的 EULA)。对于纯服务器端无头(Headless)部署,Linux 上的 Docker Engine 通常是更优解。
完成上述步骤后,你就可以在 Windows Server 2022 上正常运行 docker run 和 docker compose up 命令了。
云服务器