走啊走
奋斗

在windows server 2019上部署docker容器?

服务器价格表

在 Windows Server 2019 上部署 Docker 容器,主要涉及安装 Docker Desktop(或 Docker Engine for Windows)、配置网络以及运行容器。由于 Windows Server 是服务器环境,通常推荐使用 Docker Enterprise Edition (EE) 或通过 WSL 2 配合 Docker Desktop 的方式,但最经典且稳定的方案是直接使用 Docker Engine for Windows

以下是详细的操作步骤:

1. 前置条件检查

确保你的 Windows Server 2019 满足以下要求:

  • 版本:必须是 Standard 或 Datacenter 版本,且已安装最新的累积更新。
  • 功能启用:需要启用“容器”和"Hyper-V"相关功能(如果是使用 Hyper-V 模式)。
  • 权限:操作需使用具有管理员权限的账户。

2. 启用必要的 Windows 功能

在 PowerShell 中(以管理员身份运行),执行以下命令来启用容器支持:

# 启用容器功能
Enable-WindowsOptionalFeature -Online -FeatureName Containers-DisposableClientVM -All

# 如果计划使用 WSL 2 后端,还需启用 WSL 和虚拟平台
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

注意:执行完上述命令后通常需要重启服务器。

3. 下载并安装 Docker

Windows Server 2019 官方推荐两种安装方式,取决于你的具体需求:

方案 A:使用 Docker Desktop(适合开发/测试,含 GUI)

如果你需要图形界面或本地开发体验:

  1. 访问 Docker Hub 或 Docker 官网下载 Docker Desktop for Windows
  2. 选择与 Windows Server 2019 兼容的版本(建议查看 Docker 官方文档确认兼容性,通常较新的版本支持 Server 2019)。
  3. 运行安装包,按照向导完成安装。
  4. 安装过程中会提示重启,重启后打开 Docker Desktop 并确保状态为 "Running"。
  5. 重要:在 Docker Desktop 设置中,将资源引擎切换为 WSL 2 backend(推荐)或 Hyper-V 模式。

方案 B:使用 Docker Engine for Windows(适合生产环境,无 GUI)

这是服务器生产环境的最佳实践,轻量且稳定。

  1. 前往 Docker 官方 GitHub 仓库或镜像源下载 docker-cedocker-cli 的 MSI 安装包。
    • 通常路径为:https://download.docker.com/win/static/stable/x86_64/ (注意:Server 版有时需通过 WinGet 或手动解压 MSI)。
    • 更推荐的方法:使用 PowerShell 脚本自动安装(需先安装 Chocolatey 或 winget):
      # 安装 winget (如果未安装)
      winget install --id Docker.DockerDesktop --source winget
      # 或者直接下载 Docker Engine MSI 进行静默安装
    • 注:由于 Server 2019 较老,直接下载最新的 Docker CE MSI 可能会遇到依赖问题。最稳妥的方式是使用微软推荐的 WinGet 包管理器:
      winget install Docker.DockerEngine

4. 验证安装

安装完成后,打开 PowerShell 输入以下命令验证 Docker 是否正常工作:

docker version

如果输出了客户端和服务端的版本号信息,说明安装成功。

接着运行一个测试容器:

docker run hello-world

系统会拉取 hello-world 镜像并在容器中运行,输出欢迎信息即表示 Docker 引擎正常运作。

5. 常见问题与优化建议

  • 网络配置:Windows Server 默认可能没有配置好 NAT 网络。如果容器无法访问网络,可以在 Docker Desktop 设置中调整 DNS,或在 PowerShell 中重置网络:
    docker network prune
  • 存储驱动:确保存储驱动设置为 npipewsl2。如果是生产环境,建议将数据卷挂载到非系统盘,避免 C 盘空间不足。
  • 安全组:如果在云环境中(如 Azure/AWS),请确保防火墙规则允许 Docker 所需的端口(通常是 2375, 2376 等,视配置而定)。
  • 性能:在服务器上使用 WSL 2 后端通常比 Hyper-V 模式性能更好,启动速度更快,内存占用更低。

通过以上步骤,你的 Windows Server 2019 即可成功运行 Docker 容器。如果需要部署具体的应用(如 Nginx、SQL Server 等),只需使用 docker run 命令指定对应的镜像名称即可。