在 Windows Server 上安装 Docker 主要有两种方式:使用 Docker Desktop(推荐用于开发/测试) 和 使用 Docker EE (Enterprise Edition) / WSL2 后端。
由于 Windows Server 默认是“服务器核心”或没有图形界面,且 Docker Desktop 对系统版本有特定要求,最通用且稳定的方案是使用 Docker Engine for Windows(基于 Hyper-V 或 WSL2)。
以下是针对 Windows Server 2016/2019/2022 的标准安装步骤:
前置条件检查
在安装之前,请确保满足以下条件:
- 操作系统:Windows Server 2016, 2019, 或 2022。
- 注意:Docker Desktop 通常不支持 Server Core 模式,也不支持非英文版系统(除非配置语言包),因此生产环境更建议使用 Docker Engine 安装包。
- 虚拟化支持:BIOS 中必须开启 VT-x/AMD-V 虚拟化技术。
- 角色安装:确保已启用 Hyper-V 角色。
- 网络:建议连接互联网以下载镜像和组件。
第一步:启用 Hyper-V 角色
如果尚未启用 Hyper-V,请先通过 PowerShell 启用它(需要管理员权限):
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
执行后系统会重启,请等待重启完成。
第二步:下载 Docker 安装包
根据你的需求选择下载源:
方案 A:使用官方 Docker Engine Installer(推荐用于生产环境)
这是最轻量、无 GUI 依赖的方式,适合纯命令行服务器。
- 访问 GitHub Releases 页面:https://github.com/docker/cli/releases 或直接搜索 "Docker Engine for Windows"。
- 下载对应版本的 MSI 安装包(例如
docker-24.0.x.msi)。- 提示:如果是较新的 Docker 版本,推荐使用 Docker Desktop for Windows (Server 版) 的 WSL2 后端,但需确保安装了 WSL2 内核。
方案 B:使用 Docker Desktop(仅限带桌面的 Full Server 或开发机)
如果你使用的是带有完整桌面环境的 Windows Server,可以直接下载 Docker Desktop for Windows:
- 访问 https://www.docker.com/products/docker-desktop。
- 下载并运行安装程序。
- 安装过程中选择 "Use the WSL 2 based engine"(如果可用)以获得更好的性能。
注意:Docker Desktop 在 Windows Server 上可能无法启动,因为它主要针对 Windows 10/11 优化。如果在 Server 上遇到兼容性问题,请务必使用 方案 A (Docker Engine MSI)。
第三步:安装 Docker
如果使用 MSI 安装包(Docker Engine):
- 双击下载的
.msi文件。 - 按照向导点击 "Next"。
- 勾选 "Allow unauthenticated repositories"(允许未认证仓库,可选)。
- 完成安装。
如果使用 Docker Desktop:
- 双击安装程序。
- 同意许可协议。
- 等待安装完成,系统会自动重启服务。
第四步:验证安装
安装完成后,打开 PowerShell 或 CMD(以管理员身份运行),输入以下命令:
docker --version
docker info
预期输出:
docker --version应显示类似Docker version 24.0.x, build ...。docker info应显示详细的系统信息,包括Storage Driver: windowsfilter(Hyper-V) 或npipe(WSL2)。
运行 Hello World 测试容器:
docker run hello-world
如果看到欢迎信息,说明 Docker 已成功运行。
常见问题与注意事项
-
WSL2 vs Hyper-V:
- Windows Server 2022 及更新版本强烈推荐使用 WSL2 后端,性能接近原生 Linux。
- 旧版本(如 Server 2016/2019)通常使用 Hyper-V 后端。
- 如果
docker info显示存储驱动为windowsfilter,则是 Hyper-V 模式;如果是wsl2,则是 WSL2 模式。
-
防火墙设置:
- 如果容器无法联网,可能需要检查 Windows 防火墙是否阻止了 Docker 的网络适配器。通常 Docker 会自动管理虚拟交换机。
-
资源限制:
- 在生产环境中,不要随意给 Docker 分配过多内存。可以通过配置文件 (
C:ProgramDataDockerconfigdaemon.json) 限制 CPU 和内存使用。 - 示例配置:
{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }, "storage-driver": "windowsfilter" }
- 在生产环境中,不要随意给 Docker 分配过多内存。可以通过配置文件 (
-
关于 Docker Desktop 的授权:
- Docker Desktop 在个人学习或非商业场景免费,但在企业生产环境(员工超过 250 人或年收入超过 1000 万美元)需要购买许可证。对于纯服务器部署,Docker Engine (MSI) 通常是免费的且更适合。
通过以上步骤,你应该可以在 Windows Server 上成功运行 Docker 容器了。如果有具体的报错信息,欢迎提供以便进一步排查。
CLOUD云枢