在 Windows Server 上运行 Docker 是完全可行的,但需要注意一些关键点,包括版本兼容性、安装方式以及运行模式(Windows 容器 vs. Linux 容器)。
以下是详细的说明和步骤:
✅ 一、支持的 Windows Server 版本
Docker 支持以下版本的 Windows Server:
- Windows Server 2016
- Windows Server 2019
- Windows Server 2022
⚠️ 注意:必须是 64位版本,且建议使用 Datacenter 或 Standard 版本。
✅ 二、Docker 在 Windows 上的两种模式
-
Windows 容器(Windows Containers)
- 运行基于 Windows 的镜像(如
mcr.microsoft.com/windows/servercore)。 - 需要与宿主系统版本兼容(如 RS5、2004、21H2 等)。
- 原生支持,无需虚拟机。
- 运行基于 Windows 的镜像(如
-
Linux 容器(Linux Containers)
- 运行基于 Linux 的镜像(如
nginx,ubuntu)。 - 在 Windows Server 上支持有限,通常需要 Hyper-V 隔离 或通过 WSL2(仅限 Windows 10/11 桌面版)。
- 在 Windows Server 上,Linux 容器支持较弱,通常不推荐用于生产。
- 运行基于 Linux 的镜像(如
? 重点:Windows Server 主要用于运行 Windows 容器。
✅ 三、安装 Docker on Windows Server
方法一:使用 Microsoft 官方 PowerShell 模块(推荐)
-
打开 PowerShell(管理员权限)
-
安装
DockerProvider和Microsoft-Hyper-V模块:
# 安装容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
- 安装 Docker
# 安装 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
如果看到欢迎信息,说明安装成功。
方法二:手动下载 Docker 二进制文件(适用于离线环境)
-
下载 Docker 二进制包(如
docker-xx.zip)从:- https://download.docker.com/components/engine/windows-server/
-
解压到
C:Program Filesdocker -
注册为服务:
# 进入 Docker 目录
cd "C:Program Filesdocker"
# 安装服务
.dockerd --register-service
# 启动服务
Start-Service docker
✅ 四、配置和使用 Docker
1. 查看 Docker 信息
docker info
确保 Operating System 显示为 Windows。
2. 拉取并运行 Windows 容器示例
docker run mcr.microsoft.com/windows/nanoserver:ltsc2022 echo "Hello from Windows Container"
3. 使用 Windows Server Core 镜像
docker run mcr.microsoft.com/windows/servercore:ltsc2022 cmd
✅ 五、注意事项
| 项目 | 说明 |
|---|---|
| 版本兼容性 | Windows 容器镜像必须与主机 OS 版本兼容(如 LTSC2022 镜像需运行在 2022 主机上) |
| 性能 | Windows 容器比 Linux 容器资源占用更高 |
| 存储驱动 | 默认使用 windowsfilter,可选 lcow(Linux 容器 on Windows,已弃用) |
| 网络 | 支持 NAT、Transparent、L2Bridge 等模式 |
| 安全 | 推荐启用 Hyper-V 隔离提升安全性 |
✅ 六、替代方案(推荐用于 Linux 容器)
如果你主要想运行 Linux 容器,建议:
- 使用 Windows 10/11 + WSL2 + Docker Desktop(更成熟)
- 或使用 Linux 服务器(如 Ubuntu + Docker) 替代 Windows Server
✅ 七、常见问题
-
错误:no matching manifest for windows/amd64
- 原因:镜像不支持当前 Windows 版本
- 解决:使用
ltsc2022、1809等匹配版本标签
-
Docker 服务无法启动
- 检查是否安装了
Containers功能 - 检查系统版本是否支持
- 检查是否安装了
✅ 总结
| 项目 | 是否支持 |
|---|---|
| Windows Server 上运行 Docker | ✅ 支持(推荐 2019/2022) |
| 运行 Windows 容器 | ✅ 完全支持 |
| 运行 Linux 容器 | ⚠️ 有限支持,不推荐生产使用 |
| 生产环境建议 | 使用 Windows 容器或迁移到 Linux 平台 |
如果你有具体的 Windows Server 版本或使用场景(如 IIS、.NET 应用容器化),可以告诉我,我可以提供更具体的配置示例。
CDNK博客