在 Windows Server 上安装 Docker 是一个常见的需求,但需要注意的是,Docker Desktop for Windows(图形界面版)通常不支持在 Windows Server 操作系统上运行。Windows Server 主要使用 Docker Engine(命令行版本),它需要配合 Windows Containers 功能使用。
以下是基于 Windows Server 2016/2019/2022 的标准安装步骤:
1. 前置条件检查
确保你的服务器满足以下要求:
- 操作系统:Windows Server 2016, 2019 或 2022。
- 更新:系统必须是最新的,且已安装所有关键补丁。
- 内核模式:建议使用 Server Core 或 Desktop Experience 模式均可,但 Server Core 更轻量。
- 网络:确保服务器可以访问互联网以下载组件。
2. 启用容器功能
首先需要在服务器上启用“容器”功能。你可以通过 PowerShell 快速完成此操作。
打开 PowerShell (管理员),运行以下命令:
# 启用容器功能并重启(如果提示需要重启)
Enable-WindowsOptionalFeature -Online -FeatureName containers -All
注意:执行后可能需要重启服务器才能生效。重启后请继续下一步。
3. 下载 Docker Engine 安装包
由于不能直接使用 Docker Desktop,我们需要手动下载 Docker Engine MSI 安装包。
-
访问微软官方 GitHub 仓库的 Release 页面:
https://github.com/microsoft/Docker-for-Windows/releases
(注:较新的版本通常直接托管在 Docker Hub 或微软官方镜像站,也可以尝试直接搜索 "Docker Engine for Windows Server")推荐方式:直接前往 Docker 官方文档获取最新 MSI 链接,或者使用 PowerShell 脚本自动下载(如下所示)。
如果你无法找到直接的 MSI 链接,可以使用以下 PowerShell 脚本自动下载最新版 Docker Engine MSI:
# 设置变量 $dockerVersion = "24.0.7" # 请替换为当前最新版本号 $url = "https://download.docker.com/win/static/stable/x86_64/docker-$dockerVersion.zip" # 注意:Windows Server 环境通常推荐使用 .msi 安装程序,而非 zip。 # 最稳妥的方式是手动从 https://hub.docker.com/r/microsoft/windows-container-tools 下载对应的 .msi 文件。 # 这里假设你已经下载了 docker-engine.msi 到 C:Downloads更简单的官方推荐方法(通过 Chocolatey 或直接下载):
建议直接访问 Microsoft Container Registry 或 Docker 官网下载docker-engine.msi。如果网络受限,可以使用 Scoop 或 Chocolatey 包管理器(需先安装):
# 安装 Chocolatey (如果尚未安装) Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) # 安装 Docker Engine choco install docker-engine --params '/InstallDir:"C:Program FilesDocker"' -y
4. 安装 Docker Engine
如果你已经下载了 .msi 安装包(例如 docker-engine.msi):
- 双击运行安装包。
- 按照向导点击 Next,接受许可协议。
- 选择安装路径(默认即可)。
- 在组件选择页面,确保勾选 Windows Containers 和 Linux Containers(如果需要兼容 Linux 镜像,需额外配置,但在纯 Windows Server 环境下通常只装 Windows 容器引擎)。
- 点击 Install 开始安装。
5. 验证安装
安装完成后,打开新的 PowerShell 窗口(无需重启,除非安装程序提示),运行以下命令:
# 检查版本
docker version
# 测试运行一个 Hello World 容器
docker run hello-world
如果看到类似 "Hello from Docker!" 的消息,说明安装成功。
6. 常见问题与注意事项
-
Windows 容器 vs Linux 容器:
- 在 Windows Server 上,默认只能运行 Windows 容器(镜像前缀如
mcr.microsoft.com/windows/nanoserver)。 - 如果你需要运行标准的 Linux 容器(如
nginx,redis),你需要安装 WSL 2 (Windows Subsystem for Linux 2) 并搭配 Docker Desktop(仅限 Windows 10/11 专业版,不支持 Windows Server),或者在 Windows Server 上搭建 Hyper-V 虚拟机来运行 Linux 容器。 - 替代方案:在 Windows Server 上运行 Linux 容器的最佳实践通常是使用 Hyper-V 隔离的 Linux 容器(如果支持)或者直接在 VM 中部署 Linux。目前 Docker Engine on Windows Server 对 Linux 原生容器的支持非常有限。
- 在 Windows Server 上,默认只能运行 Windows 容器(镜像前缀如
-
防火墙端口:
确保服务器的防火墙允许 Docker 所需的端口(通常是 TCP 2375, 2376 等),或者在 PowerShell 中暂时关闭防火墙进行测试。 -
权限问题:
运行docker命令时,通常需要以 Administrator 身份运行 PowerShell。
通过以上步骤,你应该可以在 Windows Server 上成功部署 Docker Engine。如果有特定的镜像需求(如必须运行 Linux 镜像),请考虑在服务器上部署 KVM/QEMU 虚拟机或使用 Azure/AWS 等云平台的 Linux 实例。
CLOUD技术博