在windows server 2019上部署docker容器?

在 Windows Server 2019 上部署 Docker 容器,主要需要安装 Docker Desktop for Windows(适用于开发环境)或 Docker EE/CE for Windows Server(适用于生产环境)。由于 Windows Server 2019 是服务器操作系统,通常推荐使用 Docker CE (Community Edition) 配合 Windows Containers 模式。

以下是详细的部署步骤:

前置条件检查

  1. 系统版本:确保已安装 Windows Server 2019 的标准版或数据中心版(建议更新到最新补丁)。
  2. 功能启用:必须启用“容器”功能。
  3. 虚拟化支持:如果是在物理机上运行,需确保 BIOS 中开启了 VT-x/AMD-V;如果是虚拟机,需在 hypervisor 设置中开启嵌套虚拟化。
  4. 网络:确保服务器有网络连接以拉取镜像。

第一步:启用必要的 Windows 功能

Docker 依赖于 Windows 的容器化功能。你需要通过 PowerShell 以管理员身份运行以下命令来启用所需的功能:

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

# 启用 Hyper-V(如果使用 Hyper-V 隔离模式,推荐)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

注意:执行完成后通常需要重启服务器。如果仅使用进程隔离模式(Process Isolation),Hyper-V 不是绝对必须的,但为了稳定性和兼容性,建议保留。


第二步:安装 Docker Engine (推荐方式)

在 Windows Server 上,最稳定且官方推荐的方式是使用 Microsoft Container Registry 提供的脚本进行安装,或者手动下载 MSI 安装包。

方法 A:使用 PowerShell 脚本自动安装(推荐)

这是最快的方式,会自动处理依赖项和配置。

  1. 打开 PowerShell(管理员身份)。
  2. 运行以下命令下载并执行安装脚本:
# 从 Microsoft 官方仓库获取安装脚本
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/microsoft/Windows-Containers/master/Docker/InstallDocker.ps1" -OutFile InstallDocker.ps1

# 执行安装脚本
.InstallDocker.ps1 -AcceptEula

如果上述链接不可用,也可以直接访问 Microsoft 官方文档 下载最新的 docker-install.msi 安装包。

方法 B:手动安装 MSI 包

  1. 访问 Microsoft Container Registry 或 GitHub 上的 Docker 发布页。
  2. 下载对应版本的 Docker-For-Windows.msidocker-ce-<version>.msi
  3. 双击运行安装程序,按照向导完成安装。

第三步:验证安装与切换容器类型

安装完成后,Docker 默认可能处于 Linux 容器模式(如果安装了 Docker Desktop),但在 Server 上通常默认是 Windows 容器。我们需要确认当前模式。

  1. 打开命令行或 PowerShell,输入:

    docker version

    查看输出中的 Server 部分,确认是否显示 Windows

  2. 切换容器模式(如果需要):
    如果 Docker 提示你正在使用 Linux 容器,而你需要运行 Windows 应用(如 .NET Framework 应用),请切换到 Windows 模式:

    # 切换到 Windows 容器模式
    docker context use default
    docker info | findstr /C:"OSType"

    注:如果在 Server 2019 上刚安装完,通常默认就是 Windows 模式。如果遇到错误,可以通过任务栏右下角的 Docker 图标右键选择 "Switch to Windows containers"(如果有该选项),或在 PowerShell 中执行 Restart-Service docker 后尝试运行 docker run --platform=windows hello-world

  3. 运行测试容器
    运行一个最简单的测试镜像来验证一切正常:

    docker run hello-world

    如果看到 "Hello from Docker!" 的消息,说明部署成功。


第四步:配置生产环境注意事项

在生产环境中,除了基础部署,还需关注以下几点:

  • 网络配置:Windows Server 的防火墙可能会阻止容器通信。如果容器无法被外部访问,需要在 Windows 防火墙中添加规则允许 Docker 相关的端口(通常是 2375, 2376, 80, 443 等)。
  • 存储驱动:Windows Server 2019 默认使用 npipe 管道通信。如果是高并发场景,建议将数据卷挂载到高性能磁盘(如 SSD 或 RAID 阵列),避免使用默认的系统盘。
  • 权限管理:确保运行 Docker 服务的用户具有足够的权限,或者将用户加入 Docker Users 组。
  • 更新策略:定期通过 docker update 或重新拉取镜像来保持安全补丁。

常见问题排查

  • 错误:The container is not runningNo such image
    这通常是因为本地缓存损坏。尝试清理并重新拉取:

    docker system prune -a
    docker pull <image-name>
  • 错误:Cannot connect to the Docker daemon
    检查 Docker 服务是否启动:

    Get-Service docker
    Start-Service docker
  • 关于 Hyper-V 隔离
    如果你需要极高的安全性(例如多租户隔离),建议使用 Hyper-V 隔离模式启动容器:

    docker run --isolation=hyperv ...

通过以上步骤,你的 Windows Server 2019 应该已经成功部署了 Docker 环境,可以开始构建和运行 Windows 或 Linux 容器了。

未经允许不得转载:CLOUD技术博 » 在windows server 2019上部署docker容器?