奋斗
努力

在windows server 2019上部署docker容器,使用docker运行linux服务?

云计算

在 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 示例或自动化部署脚本?

未经允许不得转载:云服务器 » 在windows server 2019上部署docker容器,使用docker运行linux服务?