在 Windows Server 上安装 Docker,通常有两种主流方式:Docker Desktop for Windows(适合开发/测试环境)和 Docker EE/Server 版(基于 Hyper-V 或 WSL2)。
由于 Windows Server 默认没有图形化界面(尤其是 Core 版本),且生产环境通常推荐轻量级方案,以下是针对不同场景的详细步骤:
⚠️ 前置检查(必须执行)
在开始之前,请确保你的云服务器满足以下条件:
- 操作系统版本:Windows Server 2016, 2019, 2022(建议 2019 或 2022)。
- 虚拟化支持:BIOS/UEFI 中已开启 CPU 的虚拟化技术(Intel VT-x / AMD-V)。
- 内存要求:至少 4GB RAM(推荐 8GB+)。
- 网络连接:能访问微软官方源或阿里云/腾讯云镜像提速地址。
方法一:使用 Docker Desktop for Windows(推荐用于开发/测试)
这是最简单的方法,但注意:Docker Desktop 在 Windows Server 上的授权策略较为严格(仅限个人学习、开发或演示用途,商用需购买许可证)。如果你是在纯生产环境且不想折腾配置,此方法最快。
步骤 1:下载安装包
前往 Docker 官网下载适用于 Windows Server 的安装包:
- 下载地址:https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
- 提示:如果无法直接下载,可尝试通过 RDP 连接服务器后,在浏览器中下载,或使用
curl命令下载。
步骤 2:安装并配置
- 双击运行
.exe安装程序。 - 按照向导点击 "Next"。
- 关键步骤:在安装选项中,务必勾选 "Use WSL 2 instead of Hyper-V"(如果你的系统是 2022 且安装了 WSL2 功能)或 "Use Hyper-V"。
- 注意:Windows Server 2019/2022 默认可能未启用 WSL2,建议先启用 Hyper-V 模式以兼容性更好。
- 完成安装后重启电脑。
步骤 3:验证安装
打开 PowerShell(管理员身份),输入:
docker --version
docker run hello-world
如果看到欢迎信息,说明安装成功。
方法二:使用 Win-Container 脚本(推荐用于生产环境/无 GUI 环境)
如果你使用的是 Windows Server Core(无图形界面)或者希望更轻量地管理容器,可以使用微软官方提供的自动化脚本进行安装。这种方式不依赖 Docker Desktop 的图形界面,更适合服务器后台部署。
步骤 1:启用必要功能
首先需要在服务器上启用 Hyper-V 和 Containers 功能。以管理员身份运行 PowerShell:
# 启用 Hyper-V 和 Containers 功能
Install-WindowsFeature -Name Hyper-V,Containers -IncludeManagementTools -Restart
系统可能会要求重启,请根据提示操作。
步骤 2:下载并运行安装脚本
微软官方提供了一个自动安装脚本,可以直接拉取并安装 Docker Engine。
-
在 PowerShell 中运行以下命令下载脚本:
Invoke-WebRequest -Uri https://raw.githubusercontent.com/microsoft/Windows-Containers/master/scripts/docker-install.ps1 -OutFile docker-install.ps1(注:如果上述链接失效,可直接手动下载该脚本内容保存为 .ps1 文件)
-
执行安装脚本(需要联网拉取 Docker 镜像):
.docker-install.ps1脚本会自动检测环境、下载 Docker MSI 安装包并进行静默安装。
步骤 3:验证与启动服务
安装完成后,检查 Docker 服务状态:
Get-Service docker
如果状态是 Running,则安装成功。你可以再次运行 docker run hello-world 进行测试。
常见问题与优化建议
-
网络问题(拉取镜像慢)
国内用户直接拉取 Docker Hub 镜像非常慢甚至超时。建议在安装前配置镜像提速器。- 修改配置文件:编辑
C:ProgramDatadockerconfigdaemon.json(如果没有则新建)。 - 添加配置:
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://huecker.io", "https://dockerhub.timeweb.cloud" ] } - 重启 Docker 服务:
Restart-Service docker
- 修改配置文件:编辑
-
权限问题
如果在非管理员账户下运行 Docker 报错,请确保当前用户属于docker-users组,或者直接以管理员身份运行 PowerShell。 -
WSL2 vs Hyper-V
- WSL2:性能更好,资源占用更低,但需要 Windows 10/11 内核支持(Server 2022 已支持较好)。
- Hyper-V:传统方式,稳定性高,但在某些云厂商(如 AWS/Aliyun)的实例上可能需要特殊配置才能完美运行嵌套虚拟化。
总结
- 开发/测试:直接使用 Docker Desktop,体验最好。
- 生产环境/Core 版:推荐使用 PowerShell 脚本安装 Docker Engine,无需图形界面,更稳定且易于集成到 CI/CD 流程中。
安装完成后,你就可以像往常一样使用 docker pull, docker run, docker-compose up 等命令了。
云知识CLOUD