在 Windows Server 2019 上使用 Docker 是完全可行的,但需要注意一些限制和配置要求。以下是详细的说明和操作步骤:
✅ 一、支持情况
Windows Server 2019 原生支持 Docker 容器,但仅支持 Windows 容器(不支持 Linux 容器,除非使用 WSL2,但 WSL2 不支持 Windows Server)。
- ✅ 支持:Windows 容器(基于 Windows Server Core 或 Nano Server 镜像)
- ❌ 不支持:Linux 容器(除非使用 Hyper-V 隔离 + LCOW,但已废弃且不稳定)
✅ 二、前提条件
-
操作系统版本:
- Windows Server 2019(建议安装最新补丁)
- Datacenter 或 Standard 版本均可
-
硬件要求:
- 启用 Hyper-V 和 容器 功能(需要支持虚拟化的 CPU)
- 至少 4GB 内存(建议 8GB+)
- 管理员权限
-
PowerShell 管理权限
✅ 三、安装 Docker
方法一:使用 Microsoft 的官方脚本安装(推荐)
-
以管理员身份打开 PowerShell
-
安装
Docker-MicrosoftPowerShell 模块(用于安装引擎):Install-Module -Name DockerMsftProvider -Repository PSGallery -Force -
安装 Docker Engine:
Install-Package -Name docker -ProviderName DockerMsftProvider -
安装完成后重启服务器:
Restart-Computer -Force -
验证 Docker 是否运行:
docker --version docker run hello-world:nanoserver
⚠️ 注意:
hello-world:nanoserver是 Windows 容器的测试镜像。
方法二:手动下载并安装 Docker EE(企业版)
适用于企业环境或需要长期支持的场景:
-
下载 Docker EE:
Invoke-WebRequest "https://download.docker.com/components/engine/windows-server/2019/docker-20.10.17.zip" -OutFile "docker.zip" -UseBasicParsing(替换为最新稳定版本链接)
-
解压到
Program Files:Expand-Archive docker.zip -DestinationPath $env:ProgramFiles -
将
docker添加到系统路径:$env:Path += ";$env:ProgramFilesdocker" -
安装为 Windows 服务:
dockerd --register-service Start-Service docker
✅ 四、使用 Docker(Windows 容器)
1. 拉取 Windows 镜像示例:
docker pull mcr.microsoft.com/windows/servercore:ltsc2019
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2019
2. 运行一个简单容器:
docker run -it mcr.microsoft.com/windows/servercore:ltsc2019 cmd
3. 构建自定义镜像(Dockerfile 示例):
FROM mcr.microsoft.com/windows/servercore:ltsc2019
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN Write-Host "Hello from Windows Container!"
CMD ["echo", "Hello World"]
构建:
docker build -t hello-win .
docker run hello-win
✅ 五、常见问题与注意事项
| 问题 | 解决方案 |
|---|---|
no matching manifest for windows/amd64 |
确保拉取的是 Windows 镜像(如 :nanoserver, :servercore),不要拉取 Linux 镜像 |
| 容器启动慢 | Windows 镜像较大,首次启动需要时间 |
| 无法运行 Linux 容器 | Windows Server 2019 不支持 WSL2,LCOW 已废弃 |
| Docker 服务无法启动 | 检查是否启用 Hyper-V 和 Containers 功能 |
✅ 六、启用必要功能(如果未启用)
# 启用 Hyper-V(如果硬件支持)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V, Containers -All
⚠️ 注意:启用 Hyper-V 会要求重启。
✅ 七、推荐场景
- 托管 .NET Framework / .NET Core 应用(Windows 版)
- 迁移传统 Windows 应用到容器
- 内部企业服务容器化(如 IIS、SQL Server on Windows)
❌ 八、不推荐场景
- 需要运行 Linux 应用(应使用 Linux 服务器 + Docker)
- 高密度容器部署(Windows 容器资源开销大)
✅ 九、后续管理
- 使用
docker-compose(需单独安装) - 集成到 Kubernetes(如 AKS Windows 节点、本地 K8s 集群)
- 使用 Portainer 等 UI 工具管理
✅ 总结
| 项目 | 支持情况 |
|---|---|
| 操作系统 | ✅ Windows Server 2019 |
| 容器类型 | ✅ Windows 容器(Server Core / Nano) |
| Linux 容器 | ❌ 不支持(LCOW 已废弃) |
| 安装方式 | ✅ PowerShell 模块或手动安装 |
| 生产使用 | ✅ 可用于生产(但资源消耗较高) |
如果你有具体的应用场景(如部署 IIS、SQL Server、.NET 应用等),可以告诉我,我可以提供对应的 Docker 配置示例。
秒懂云