在 Windows Server 2022 上安装 Docker,主要取决于你的服务器角色配置。Windows Server 2022 默认支持两种容器模式:Windows 容器(使用 Hyper-V)和 Linux 容器(需要开启 WSL2 或 Hyper-V)。
通常情况下,如果你是在纯 Windows Server 环境下运行 .NET 应用或传统 Windows 服务,推荐使用 Windows 容器。如果你需要运行 Linux 应用,则需要启用 WSL2 或 Hyper-V 功能。
以下是针对这两种场景的详细安装步骤:
前置条件检查
- 系统版本:确保是 Windows Server 2022 Standard 或 Datacenter 版。
- 更新状态:建议先通过
Windows Update将系统更新到最新版本。 - 虚拟化支持:BIOS/UEFI 中必须开启虚拟化技术(Intel VT-x / AMD-V),否则无法启动容器引擎。
- 管理员权限:所有操作需以 Administrator 身份运行 PowerShell。
方案一:安装 Docker Desktop for Windows (推荐用于开发/测试)
这是最简单的方式,它会自动处理依赖项并管理 WSL2 后端。
-
下载安装包:
访问 Docker 官网 下载适用于 Windows Server 2022 的Docker Desktop Installer.exe。
注意:Docker Desktop 通常包含一个“试用”许可,生产环境请确认授权条款。 -
运行安装程序:
- 右键点击安装包,选择 “以管理员身份运行”。
- 在安装向导中,确保勾选 "Use WSL 2 instead of Hyper-V"(即使你主要用 Windows 容器,WSL2 也是现代推荐的后端,性能更好)。
- 如果提示需要重启,请执行重启。
-
启动与验证:
安装完成后,打开终端(PowerShell 或 CMD)输入以下命令:docker --version docker run hello-world如果看到 "Hello from Docker!" 字样,说明安装成功。
方案二:手动安装 Docker Engine (适合生产环境/无 GUI 服务器)
如果你是在没有图形界面的服务器核心(Server Core)或希望更轻量级的部署,建议使用 PowerShell 脚本自动安装。
1. 启用必要的 Windows 功能
首先,确保安装了容器相关的功能模块。在 PowerShell 中运行:
# 启用容器功能
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName Containers -NoRestart
注意:如果是为了运行 Linux 容器,可能还需要启用 WSL2 功能:
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
(执行完上述命令后,通常需要重启服务器)
2. 安装 Docker Engine
微软提供了官方的一键安装脚本,这是最稳定的方式。
-
打开 PowerShell (管理员)。
-
运行以下命令下载并执行安装脚本:
# 设置执行策略(如果之前未设置过) Set-ExecutionPolicy RemoteSigned -Scope Process # 下载并运行安装脚本 iwr -useb https://raw.githubusercontent.com/microsoft/Docker-For-Windows/main/install.ps1 | iex如果上述链接失效,也可以直接运行微软官方提供的 MSI 安装程序(从 Docker Hub 获取 MSI 包),但脚本方式更便捷。
-
等待安装完成:脚本会自动下载 Docker Engine、CLI 工具并配置服务。
3. 验证安装
安装完成后,再次验证:
docker version
docker info
常见问题与注意事项
-
Windows 容器 vs Linux 容器:
- 默认情况下,
docker run hello-world会拉取 Windows 镜像。 - 如果你想运行 Linux 镜像(如
ubuntu,nginx),必须在安装时开启了 WSL2 或 Hyper-V,并且需要在命令行指定-m linux或者在 Docker 桌面右下角切换为 Linux 模式。 - 在纯 Windows Server 环境中,如果不配置 WSL2/Hyper-V,只能运行 Windows 容器。
- 默认情况下,
-
网络问题:
Docker 可能会占用特定的端口(如 2375, 2376)。如果在防火墙规则中限制了出站流量,可能导致拉取镜像失败。请确保允许 Docker 进程联网。 -
资源限制:
在生产环境中,建议根据服务器内存大小调整 Docker 的资源限制,避免容器耗尽宿主机资源。可以在 Docker Desktop 设置中调整,或通过配置文件C:ProgramDataDockerconfigdaemon.json进行持久化配置。 -
安全建议:
不要在生产服务器上暴露 Docker API 端口(2375/2376)到公网。如果需要远程管理,请使用 SSH 隧道或配置 TLS 认证。
如果你遇到了具体的报错信息(例如“无法连接守护进程”或“找不到 WSL"),请提供错误详情,我可以进一步协助排查。
云知道CLOUD