在 Windows Server 上运行 Docker 是可行的,但需要根据你使用的 Windows Server 版本 和 Docker 的类型(Windows 容器 vs Linux 容器)来选择合适的方案。
✅ 支持情况概览
| Windows Server 版本 | 是否支持 Docker | 说明 |
|---|---|---|
| Windows Server 2016 | ✅ 支持(有限) | 需手动安装 Docker Engine,仅支持 Windows 容器 |
| Windows Server 2019 | ✅ 支持 | 支持 Windows 容器,可选支持 Linux 容器(需 WSL2) |
| Windows Server 2022 | ✅ 支持 | 支持 Windows 容器,支持 Linux 容器(需 WSL2) |
| Windows Server 2012 R2 及更早 | ❌ 不支持 | 不支持容器功能 |
一、使用 Windows 容器(原生支持)
Windows Server 支持运行 Windows 容器,即基于 Windows 镜像(如 mcr.microsoft.com/windows/servercore)的容器。
步骤:在 Windows Server 2019/2022 上安装 Docker
-
以管理员身份打开 PowerShell
-
安装容器功能
Install-WindowsFeature -Name Containers安装完成后,重启服务器:
Restart-Computer -Force -
安装 Docker Engine
Microsoft 提供了一个 PowerShell 模块来安装 Docker:# 安装 PowerShell 模块 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
二、运行 Linux 容器(Windows Server 2019/2022)
默认情况下,Docker on Windows Server 只运行 Windows 容器。
但你可以通过 WSL2 + Docker Desktop 或 直接使用 Linux VM 来运行 Linux 容器。
方法 1:使用 WSL2(推荐用于开发/测试)
注意:Windows Server 不支持 WSL2,除非你使用的是 Windows Server, version 2004 及以上(内核版本 ≥ 19041) 并手动启用 WSL。
启用步骤(仅适用于支持 WSL2 的 Server 版本):
-
启用 WSL 功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -
安装 WSL2 内核更新包(从微软官网下载)
-
设置 WSL2 为默认版本
-
安装一个 Linux 发行版(如 Ubuntu)
-
在 WSL 中安装 Docker Engine 或使用 Docker Desktop(需 Windows 10/11 Pro/Enterprise)
⚠️ 注意:Docker Desktop 不支持 Windows Server,所以你只能在 WSL2 中手动安装 Docker Engine。
方法 2:使用 Hyper-V 虚拟机运行 Linux + Docker
更稳定的方式是:
- 在 Windows Server 上启用 Hyper-V
- 创建一个 Linux 虚拟机(如 Ubuntu)
- 在 Linux VM 中安装 Docker
- 通过 Docker 管理 Linux 容器
三、使用 Docker Desktop?🚫
Docker Desktop 不支持 Windows Server 操作系统。
它只支持:
- Windows 10 Pro/Enterprise
- Windows 11 Pro/Enterprise
- Windows Server 不在支持列表中。
所以你不能在 Windows Server 上安装 Docker Desktop。
四、推荐方案总结
| 目标 | 推荐方案 |
|---|---|
| 运行 Windows 容器 | 原生 Docker Engine(通过 Install-Package -Name docker) |
| 运行 Linux 容器 | 使用 Hyper-V 创建 Linux VM,然后在 VM 中运行 Docker |
| 混合环境管理 | 使用 Kubernetes(如 AKS、k3s)或 Docker Swarm(已弃用)统一编排 |
五、替代方案:使用 Kubernetes(如 k3s、Rancher)
如果你需要在 Windows Server 上运行混合容器(Windows + Linux),可以考虑:
- 使用 k3s 或 RKE2(Rancher Labs)部署轻量 Kubernetes 集群
- 加入 Windows 节点(支持 Windows 容器)
- Linux 节点运行 Linux 容器
- 统一通过 Kubernetes 管理
参考:Kubernetes 官方文档 – Windows 支持
六、常见问题
❓ 是否可以在 Windows Server 上运行 Linux 容器?
- ✅ 可以,但不能直接运行。
- 需要通过 WSL2(有限支持)或 Hyper-V 虚拟机中运行 Linux + Docker。
❓ 是否支持 Docker Compose?
- ✅ 支持,安装后可通过:
Invoke-WebRequest "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-windows-x86_64.exe" -OutFile $env:ProgramFilesdockerdocker-compose.exe然后使用
docker-compose --version验证。
七、参考链接
- Microsoft 官方文档:Install Docker Engine on Windows Server
- Docker 官方:Windows 容器
- Kubernetes + Windows 容器
如果你提供具体的 Windows Server 版本 和 想运行的容器类型(Windows/Linux),我可以给出更精确的安装步骤。
云服务器