在 Windows Server 2019 上部署 Docker 容器并运行 Linux 服务是完全可行的,但需要注意 Windows Server 2019 默认只支持 Windows 容器,若要运行 Linux 容器,必须安装并配置 Docker Desktop for Windows(适用于客户端)或 WSL 2 + Docker Engine(适用于服务器端)。
由于你是在 Windows Server 2019(服务器版)上操作,不能直接安装 Docker Desktop(它不支持服务器版系统),因此推荐方案是:
✅ 推荐方案:使用 WSL 2 + Docker Engine(Linux 容器支持)
前提条件
- Windows Server 2019 已启用 Hyper-V 和 虚拟机平台 功能。
- 系统已安装 WSL 2(Windows Subsystem for Linux 2)。
- 建议安装最新版 Docker Engine for Windows(注意:官方文档中 Docker Engine 对 Windows Server 的支持有限,更稳妥的方式是通过 WSL 2 运行 Docker Daemon)。
⚠️ 重要提示:
Microsoft 官方 未提供针对 Windows Server 2019 的原生 Linux 容器支持。最可靠、社区广泛验证的方式是:
- 在 WSL 2 发行版(如 Ubuntu)中安装 Docker Engine;
- 通过
docker命令在 WSL 2 环境中运行 Linux 容器;- 或使用
winpty/wsl --mount等工具实现与宿主机交互。
🔧 详细步骤
步骤 1:启用必要功能
以管理员身份运行 PowerShell:
# 启用 Hyper-V 和虚拟机平台
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All
# 重启系统
Restart-Computer
步骤 2:安装并设置 WSL 2
# 安装 WSL 2 默认发行版(推荐 Ubuntu 22.04)
wsl --install -d Ubuntu-22.04
# 或在已有 WSL 后设置默认版本为 WSL 2
wsl --set-default-version 2
首次启动 WSL 会提示设置用户名和密码,请完成初始化。
步骤 3:在 WSL 2 中安装 Docker Engine
进入 WSL 终端(如 Ubuntu):
# 更新软件包
sudo apt update && sudo apt upgrade -y
# 安装依赖
sudo apt install ca-certificates curl gnupg lsb-release -y
# 添加 Docker GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
# 将当前用户加入 docker 组(避免 sudo)
sudo usermod -aG docker $USER
newgrp docker # 立即生效(或重新登录)
步骤 4:验证 Docker 是否正常工作
docker run hello-world
若看到欢迎信息,说明 Linux 容器环境已就绪。
步骤 5:运行 Linux 服务示例
例如运行一个 Nginx 容器:
docker run -d --name my-nginx -p 8080:80 nginx:latest
然后在浏览器访问 http://localhost:8080(Docker 会自动映射端口到宿主机)。
📌 注意事项
| 项目 | 说明 |
|---|---|
| 性能 | WSL 2 提供接近原生的 Linux 性能,适合生产测试场景 |
| 持久化数据 | 建议将卷挂载到 Windows 路径,例如 -v C:data:/data |
| 网络 | 容器默认使用 NAT 网络,可通过 --network host 或自定义桥接优化 |
| 管理工具 | 可使用 docker-compose 简化多容器编排(需在 WSL 中安装) |
| 生产环境建议 | 若用于正式生产,建议迁移至纯 Linux 服务器(如 Ubuntu Server),以获得更好支持和稳定性 |
❌ 不推荐的做法
- 尝试在 Windows Server 上直接安装 Docker Desktop(会失败或不支持)。
- 使用旧版 Moby/LinuxKit 方案(已过时且维护困难)。
如果你需要进一步配置 Kubernetes、CI/CD 集成或监控,也可以在此基础上扩展。是否需要我提供完整的 docker-compose.yml 示例或自动化部署脚本?
云服务器