在云服务器上使用 Windows Server 系统安装 Docker 是可行的,但需要注意以下几点:
✅ 一、前提条件
-
Windows Server 版本要求
- 必须是 Windows Server 2016 或更高版本(推荐使用 Windows Server 2019 / 2022)
- 需要支持 容器功能(Containers feature)
-
系统类型
- 必须是 64位操作系统
- 推荐使用 Datacenter 或 Standard 版本
-
硬件要求
- 支持虚拟化(VT-x/AMD-V),虽然 Windows 容器不依赖 Hyper-V 虚拟机,但如果运行 Linux 容器,则需要 Hyper-V 支持
- 至少 4GB 内存,建议 8GB+
✅ 二、安装步骤(以 Windows Server 2019/2022 为例)
方法一:使用 PowerShell 安装(推荐)
-
以管理员身份打开 PowerShell
-
安装 Containers 功能
Install-WindowsFeature -Name Containers -
重启服务器
Restart-Computer -Force -
安装 Docker Engine
Microsoft 和 Docker 合作提供了适用于 Windows 的 Docker 官方安装包。
运行以下命令安装 Docker-Microsoft PowerShell 模块并安装 Docker:
# 添加 NanoServer 包源(仅首次需要)
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# 安装 DockerMsftProvider
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
-
再次重启服务器
Restart-Computer -Force -
验证安装
docker --version docker run hello-world:nanoserver
注意:
hello-world:nanoserver是 Windows 容器镜像,不能用 Linux 镜像测试。
✅ 三、配置 Docker(可选)
-
设置 Docker 开机自启
Set-Service Docker -StartupType Automatic -
查看 Docker 信息
docker info -
切换容器模式(Windows/Linux)
- 默认是 Windows 容器模式
- 若要运行 Linux 容器,需启用 Hyper-V 并切换模式:
# 切换到 Linux 容器(需要 Hyper-V) & $Env:ProgramFilesDockerdockerd --switch-linux或右键系统托盘中的 Docker 图标 → “Switch to Linux containers”
⚠️ 注意:Linux 容器需要 Hyper-V 角色启用,且性能开销较大。
✅ 四、常见问题
| 问题 | 解决方法 |
|---|---|
Install-Package : No match was found |
确保网络正常,PowerShell 执行策略允许:Set-ExecutionPolicy RemoteSigned |
| 无法拉取镜像 | 检查是否使用正确的 Windows 镜像标签(如 mcr.microsoft.com/windows/nanoserver) |
| Docker 服务无法启动 | 查看事件日志,确认 Containers 功能已正确安装 |
| 镜像兼容性问题 | Windows 容器必须与主机 OS 版本兼容(如 build 1809 只能运行同版本基础镜像) |
✅ 五、推荐做法(云服务器场景)
- 如果主要用于运行 Windows 应用(如 .NET Framework/.NET Core),使用 Windows 容器是合适的。
- 如果主要运行 Linux 应用,建议直接使用 Linux 云服务器 + Docker,更轻量、生态更好。
- 若必须混合使用,可考虑启用 WSL2 + Docker Desktop(但 Windows Server 不支持 WSL2,仅限 Windows 10/11 Pro/Enterprise)
✅ 六、参考资源
- Microsoft 官方文档:Install Docker EE on Windows Server
- Docker 官方 Windows 文档
如果你提供具体的 Windows Server 版本号(如 2019 Datacenter 1809),我可以给出更精确的命令和镜像建议。
秒懂云