在 Windows Server 2019 上运行 Linux 容器(Linux Containers)是完全支持的,但需要满足特定的系统版本和配置要求。以下是详细的步骤和注意事项:
✅ 前提条件
-
操作系统版本:
- Windows Server 2019 必须为 1809 或更高版本(包括 LTSC 2019、1909、20H2、21H2 等)。
- 不支持早期版本(如 1709、1803)。
-
启用容器功能:
- 确保已安装并启用“容器”功能。
-
Hyper-V 支持:
- Docker Desktop for Windows 使用 Hyper-V 隔离技术来运行 Linux 容器。
- 确保 BIOS/UEFI 中启用了虚拟化技术(Intel VT-x / AMD-V)。
- 确保 Hyper-V 角色已安装并启用。
-
Docker 版本:
- 推荐使用 Docker Desktop for Windows(最新稳定版),它内置了对 Linux 容器的支持。
- 或者使用 Docker Engine for Windows Server(适用于服务器环境,无 GUI)。
🛠️ 安装步骤
方法一:使用 Docker Desktop for Windows(推荐用于开发/测试)
-
下载并安装 Docker Desktop
从官网下载:https://www.docker.com/products/docker-desktop -
启用 Hyper-V 和 WSL 2(可选但推荐)
# 以管理员身份运行 PowerShell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All Enable-WindowsOptionalFeature -Online -FeatureName Windows-Subsystem-Linux -All -
重启服务器
-
启动 Docker Desktop
- 首次启动时,选择 “Use Windows containers instead” 或 “Use WSL 2 based engine”。
- 要运行 Linux 容器,请确保切换到 WSL 2 引擎 或 Hyper-V 隔离模式。
- 设置 → General → ✅ “Use the WSL 2 based engine”
- 或在设置中切换运行时为 Linux
-
验证 Linux 容器是否工作
docker run --rm hello-world如果输出中包含
Hello from Docker!且镜像是linux/amd64,则成功。
方法二:使用 Docker Engine for Windows Server(适用于生产服务器)
-
安装容器功能
Install-WindowsFeature -Name Containers -
重启服务器
-
安装 Docker Engine
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force Install-Package -Name docker -ProviderName DockerMsftProvider -Force -
启动 Docker 服务
Start-Service Docker Set-Service -Name Docker -StartupType Automatic -
配置 Docker 使用 Linux 容器
- 编辑或创建
C:ProgramDatadockerconfigdaemon.json:{ "features": { "containerd-snapshotter": true } } - 重启 Docker 服务:
Restart-Service Docker
- 编辑或创建
-
拉取并运行 Linux 容器
docker pull nginx:latest docker run -d --name webserver -p 8080:80 nginx
⚠️ 注意:Windows Server 上的 Docker Engine 默认可能优先使用 Windows 容器。若需强制使用 Linux 容器,可能需要通过 CLI 参数或配置指定平台。
🔍 验证是否正在运行 Linux 容器
docker info | grep -i "operating system"
应显示类似:
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
或在使用 Docker Engine 时:
Server Version: 24.0.x
Operating System: Docker Desktop (or Windows)
OSType: linux
❗ 常见问题与解决方案
| 问题 | 解决方案 |
|---|---|
| 无法运行 Linux 容器 | 确认使用的是 WSL 2 或 Hyper-V 隔离;检查 Docker 运行时是否为 Linux |
| 性能较差 | 启用 Hyper-V 提速;确保 CPU 支持虚拟化;考虑使用 SSD |
| 网络不通 | 检查防火墙规则;尝试使用桥接网络而非 NAT |
| 权限错误 | 确保以管理员身份运行 PowerShell/Docker |
✅ 总结
| 项目 | 说明 |
|---|---|
| 支持的系统 | Windows Server 2019 1809+ |
| 所需功能 | Hyper-V、WSL 2(可选)、容器功能 |
| 推荐工具 | Docker Desktop for Windows(开发)或 Docker Engine(生产) |
| 关键配置 | 切换到 Linux 运行时 / WSL 2 引擎 |
| 验证命令 | docker run --rm hello-world + docker info |
只要你遵循上述步骤,就可以在 Windows Server 2019 上顺利运行 Linux 容器。如有具体报错,可提供日志进一步排查。
云知识CLOUD