在 Windows Server 上进行 Docker 部署是可行的,但需要根据你的具体需求选择合适的 Docker 模式(Windows 容器 或 Linux 容器)。以下是详细的部署步骤和注意事项。
一、前提条件
1. 支持的 Windows Server 版本
Docker 支持以下 Windows Server 版本:
- Windows Server 2016(需更新至最新补丁)
- Windows Server 2019
- Windows Server 2022
- Windows Server, version 1809 / 2004 / 2022(Semi-Annual Channel)
注意:仅支持 64位 系统。
二、安装 Docker
Windows Server 上的 Docker 安装方式主要有两种:
方法一:使用 Microsoft 官方 PowerShell 模块(推荐)
步骤 1:启用容器功能
以管理员身份运行 PowerShell:
# 安装容器功能
Install-WindowsFeature -Name Containers
# 重启服务器
Restart-Computer -Force
步骤 2:安装 Docker Engine
从 Microsoft 官方仓库安装 Docker:
# 安装 Docker-Microsoft PackageManagement Provider
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
# 重启服务器
Restart-Computer -Force
步骤 3:验证安装
docker --version
docker run hello-world:nanoserver
注意:
hello-world:nanoserver是 Windows 容器镜像。
方法二:使用 Docker Desktop(不推荐用于服务器)
Docker Desktop 主要用于开发环境(Windows 10/11),不适用于 Windows Server,因此在生产服务器上不推荐使用。
三、配置 Docker(可选)
1. 配置 Docker Daemon
编辑或创建配置文件:
# 创建配置文件路径
if (!(Test-Path "$env:ProgramDatadockerconfigdaemon.json")) {
New-Item "$env:ProgramDatadockerconfigdaemon.json" -ItemType File
}
示例 daemon.json:
{
"registry-mirrors": ["https://your-mirror.registry.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
重启 Docker 服务生效:
Restart-Service docker
四、运行容器
1. 运行 Windows 容器
# 拉取 IIS 示例镜像
docker pull mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
# 运行容器
docker run -d -p 80:80 mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
访问 http://<服务器IP> 应该能看到 IIS 欢迎页。
2. 运行 Linux 容器(需启用 Hyper-V 和 LCOW)
从 Windows Server 2019 开始,支持 Linux Containers on Windows (LCOW),但性能较差,微软已弃用 LCOW。
推荐方案:使用 WSL2 + Docker Desktop 仅限开发;生产环境建议使用 Linux 主机运行 Docker。
五、常见问题与注意事项
| 问题 | 解决方案 |
|---|---|
| 镜像拉取慢 | 配置国内镜像X_X(如阿里云、中科大) |
| 容器启动失败 | 检查宿主系统版本与镜像版本是否兼容(如 LTSC2022 镜像需对应系统) |
| 网络不通 | 检查防火墙、端口映射、HNS(Host Network Service) |
| LCOW 不稳定 | 建议避免使用,改用纯 Linux 主机部署 Docker |
六、生产环境建议
虽然可以在 Windows Server 上运行 Docker,但:
✅ 适合场景:
- 需要运行 .NET Framework / .NET Core 应用
- 必须使用 Windows 依赖的服务(如 Active Directory、IIS、SQL Server on Windows)
❌ 不推荐场景:
- 大多数微服务架构(推荐使用 Linux + Docker/K8s)
- 高性能、高密度容器部署
✅ 更佳选择:
- 使用 Linux 服务器 + Docker/Kubernetes 部署大多数应用
- Windows Server 仅用于运行 Windows 特有服务
七、参考文档
- Microsoft 官方文档 – Install Docker on Windows Server
- Docker 官方 Windows 支持
如果你有具体的应用场景(如部署 ASP.NET 应用、SQL Server 容器等),可以告诉我,我可以提供更具体的 Docker 部署示例。
秒懂云