在 Windows Server 2022 上安装 Docker,目前官方推荐的方式是安装 Docker Desktop for Windows(包含 WSL 2 后端),或者使用传统的 Moby/Kubernetes 方案。
由于 Windows Server 2022 默认没有开启 Hyper-V 和 WSL 功能,且 Docker Desktop 对服务器版系统的支持需要特定的配置,以下是两种最主流的安装方案。
方案一:使用 Docker Desktop (推荐,适合开发/测试)
这是最简单、体验最好的方式。它会自动配置 WSL 2 后端,支持图形化界面管理容器。
1. 前置环境检查与开启
Windows Server 2022 默认关闭了必要的虚拟化功能,必须先开启它们。
以管理员身份运行 PowerShell,执行以下命令开启必需的功能并重启:
# 开启 Hyper-V, Containers, WSL, Virtual Machine Platform
dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:Containers /all /norestart
# 重启服务器(必须)
Restart-Computer
注意:如果在云厂商控制台(如阿里云、AWS、Azure)购买实例,请确认该实例类型是否支持嵌套虚拟化(Nested Virtualization)。如果不确定,建议先咨询云服务商或尝试方案二。
2. 下载并安装 Docker Desktop
- 访问 Docker 官网下载页面:https://www.docker.com/products/docker-desktop/
- 下载 Windows x64 版本的安装包 (
Docker%20Desktop%20Installer.exe)。 - 运行安装程序,按照向导操作。
- 在安装选项中,确保勾选 "Use WSL 2 instead of Hyper-V"(WSL 2 性能更好,兼容性更佳)。
- 安装完成后,点击启动 Docker Desktop。首次启动会初始化 WSL 2 发行版,可能需要几分钟。
3. 验证安装
打开 PowerShell,输入:
docker --version
docker run hello-world
如果看到 "Hello from Docker!" 字样,说明安装成功。
方案二:使用 Docker Engine (无 GUI,适合生产环境)
如果你不需要图形界面,或者云服务器的 CPU/内存资源有限,不想运行 Docker Desktop 的后台服务,可以直接安装轻量级的 Docker Engine。
1. 准备脚本
Docker 官方提供了针对 Windows Server 的自动化安装脚本。
- 以管理员身份运行 PowerShell。
- 运行以下命令下载并执行安装脚本(脚本会自动处理依赖、配置镜像源等):
# 下载安装脚本
Invoke-WebRequest -Uri https://raw.githubusercontent.com/microsoft/Docker-For-Windows/master/build/scripts/install.ps1 -OutFile install.ps1
# 执行安装 (添加 -NoPrompt 参数可跳过部分交互)
.install.ps1 -NoPrompt
注意:如果上述链接失效,也可以手动通过 winget 安装:
winget install Docker.DockerEngine
2. 验证安装
安装完成后,同样在 PowerShell 中验证:
docker --version
docker run hello-world
⚠️ 云服务器特别注意事项
在云服务器上使用 Docker 时,请务必注意以下几点,否则可能导致网络不通或无法拉取镜像:
-
网络模式问题:
- NAT 限制:Docker Desktop 默认使用 NAT 网络。如果你在本地机器通过公网 IP + 端口映射访问容器,通常没问题。但如果是跨主机访问或容器间通信,需确认云安全组规则已放行相应端口。
- 端口映射:在运行容器时,务必使用
-p参数将容器端口映射到宿主机端口(例如-p 8080:80),并在云控制台的安全组/防火墙中开放该端口。
-
镜像提速:
- 国内用户直接拉取 Docker Hub 镜像速度极慢甚至超时。
- 解决方法:编辑
C:ProgramDatadockerconfigdaemon.json文件,添加国内镜像提速器地址(如阿里云、腾讯云等提供的地址):{ "registry-mirrors": [ "https://your-mirror-id.m.daocloud.io", "https://docker.mirrors.ustc.edu.cn" ] } - 修改后重启 Docker 服务:
Restart-Service docker。
-
资源消耗:
- Docker Desktop 包含一个完整的 WSL 2 虚拟机,会占用一定的内存和磁盘空间。对于低配服务器(如 1核2G),建议优先选择方案二(Docker Engine),或者手动限制 WSL 的资源分配。
总结
- 新手/开发环境:直接使用 方案一 (Docker Desktop),体验最好,但需注意资源占用。
- 生产环境/低配服务器:建议使用 方案二 (Docker Engine),更轻量,无图形界面干扰。
安装完成后,记得配置好云服务器的安全组规则,否则即使容器运行正常,外部也无法访问。
CLOUD云枢