Windows Server 2022 Standard安装docker?

在 Windows Server 2022 Standard 上安装 Docker,首先需要明确一个关键前提:Docker Desktop for Windows(即图形化界面版本)不支持作为服务器角色直接安装在 Windows Server 上。

要在 Windows Server 2022 上运行 Docker,必须使用 Docker Engine for Windows(基于 PowerShell 脚本的命令行版本)。以下是标准的安装步骤和注意事项。

核心前置条件

  1. 操作系统版本:必须是 Windows Server 2022(建议安装最新累积更新)。
  2. 容器功能启用:服务器必须启用“容器”功能。
  3. 网络配置:确保服务器有稳定的网络连接以下载镜像。
  4. 权限:需要使用具有管理员权限的账户登录。

详细安装步骤

第一步:启用容器功能

打开 PowerShell(以管理员身份运行),执行以下命令来启用必要的 Windows 功能并重启服务器(如果提示需要重启):

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers
Restart-Computer -Force

注意:重启后请等待系统完全启动。

第二步:安装 Docker Engine

Windows Server 官方推荐使用 Install-Docker.msi 安装包,或者通过 PowerShell 脚本自动安装。最稳妥的方式是手动下载 MSI 安装包进行部署,这样兼容性最好。

  1. 下载安装包
    访问 Docker 官方 GitHub 发布页或微软文档页面下载 docker-engine-x.x.x-x86_64.msi(注意:不要下载 Docker Desktop 的 .exe 文件)。

    • 通常可以在 Docker Hub 的 "Downloads" 页面找到针对 Windows Server 的 MSI 包,或者使用以下 PowerShell 命令直接下载(需联网):
    # 获取最新的稳定版 URL (示例逻辑,实际建议去官网确认最新版链接)
    $url = "https://download.docker.com/win/static/stable/x86_64/docker-27.3.1-ce.zip" 
    # 对于 Server 环境,更推荐直接使用官方提供的 Install-Docker.ps1 脚本

    推荐方法:使用官方脚本安装
    在 PowerShell 中运行以下命令,它会自动检测并安装适配的版本:

    Invoke-WebRequest -Uri https://raw.githubusercontent.com/microsoft/Windows-Containers/main/tools/Install-Docker.ps1 -OutFile Install-Docker.ps1
    .Install-Docker.ps1

    如果上述脚本因网络问题无法运行,请下载对应的 docker-engine-x.x.x-x86_64.msi 文件,双击运行并按照向导完成安装。

  2. 验证安装
    安装完成后,打开新的 PowerShell 窗口,输入:

    docker --version

    如果输出了版本号(如 Docker version 27.3.1, build ...),则说明安装成功。

第三步:配置 Docker 服务(可选但推荐)

默认情况下,Docker 可能使用 Hyper-V 后端。在生产环境中,建议将其配置为使用 NAT 模式或调整资源限制。

检查 Docker 是否正在运行:

Get-Service -Name Docker

如果未运行,尝试启动:

Start-Service Docker

第四步:测试运行容器

为了确保一切正常,运行一个简单的测试容器:

docker run hello-world

如果看到类似 "Hello from Docker!" 的消息,说明 Docker 引擎和容器运行时工作正常。


重要注意事项与最佳实践

  1. 不支持 Docker Desktop
    请勿尝试安装 Docker Desktop.exe。该版本专为开发者的 Windows 10/11 设计,包含图形界面和 WSL2 依赖,在 Server 2022 上无法正常运行,且没有授权许可。

  2. WSL2 后端 vs Hyper-V 后端

    • Hyper-V 后端:这是 Windows Server 的标准容器后端,性能稳定,适合生产环境。
    • WSL2 后端:虽然 Server 2022 支持 WSL2,但在纯服务器场景下,使用 Hyper-V 后端通常更简单且无需额外配置 Linux 子系统。除非你有特定的 Linux 工具链需求,否则保持默认的 Hyper-V 后端即可。
  3. 防火墙与安全组
    如果需要在外部访问容器端口,请务必在 Windows 防火墙或云服务商的安全组中放行相应的 TCP/UDP 端口。

  4. 内存与 CPU 限制
    Docker 默认可能会占用较多资源。建议在 C:ProgramDataDockerconfigdaemon.json 中配置资源限制,例如:

    {
      "default-runtime": "runc",
      "log-driver": "json-file",
      "log-level": "info",
      "max-concurrent-downloads": 10,
      "storage-driver": "windowsfilter"
    }

    (注:具体参数需根据实际硬件调整)

  5. 替代方案考虑
    如果你的应用场景对 Linux 原生特性(如特定的内核模块、cgroup v2 等)有强依赖,或者希望获得更好的隔离性和性能,强烈建议在 Windows Server 2022 上部署一台 Linux 虚拟机(使用 Hyper-V 或 Azure/AWS EC2),然后在虚拟机内部安装 Docker。这是企业级生产环境的常见做法,可以避免 Windows 容器带来的兼容性问题。

通过以上步骤,你就可以在 Windows Server 2022 Standard 上成功部署并使用 Docker 引擎了。

未经允许不得转载:云知识CLOUD » Windows Server 2022 Standard安装docker?