windows server2022搭建docker?

在 Windows Server 2022 上搭建 Docker,最推荐且官方支持的方式是使用 Docker Desktop for Windows。不过,由于 Server 版本通常作为无头服务器(Headless)运行,且可能没有图形界面或桌面组件,我们需要根据具体环境选择方案。

以下是两种主要场景的搭建步骤:

前置条件检查

无论使用哪种方式,请确保您的系统满足以下要求:

  1. 操作系统:Windows Server 2022 (Standard or Datacenter)。
  2. 虚拟化支持:BIOS/UEFI 中必须开启 Intel VT-x / AMD-V 虚拟化技术。
  3. 功能启用
    • 打开“服务器管理器” -> “添加角色和功能”。
    • 在“功能”列表中,勾选 容器 (Containers)Hyper-V(如果使用 Hyper-V 后端)。
    • 或者直接使用 PowerShell 命令快速启用:
      Install-WindowsFeature -Name Containers -IncludeManagementTools
      Restart-Computer

方案一:使用 Docker Desktop for Windows(推荐,适合有 GUI 环境)

如果您的 Server 安装了桌面体验(Desktop Experience),这是最简单的安装方式,它会自动配置 WSL2 后端。

  1. 下载安装程序
    • 访问 Docker 官网下载页。
    • 下载 Docker Desktop Installer.exe
  2. 执行安装
    • 双击运行安装程序。
    • 在安装向导中,务必勾选 "Use WSL 2 instead of Hyper-V"(WSL 2 性能更好,兼容性更佳)。
    • 点击 "Install" 并等待完成。
  3. 启动与验证
    • 安装完成后,Docker Desktop 会在后台自动启动。
    • 打开 PowerShell,输入以下命令验证:
      docker --version
      docker run hello-world
    • 如果看到 "Hello from Docker!" 字样,说明安装成功。

注意:如果您是在纯命令行模式(Server Core)下运行,此方法无法直接通过图形界面操作,但安装程序仍可在后台静默运行,或者您需要先安装远程桌面连接来管理。


方案二:使用 NCC (Native Container) + CLI(适合无 GUI/Server Core 环境)

如果您使用的是 Server Core 版本(无图形界面),或者希望以轻量级服务形式运行,不建议安装完整的 Docker Desktop(因为它依赖 GUI 组件),而是应该安装 Docker Engine 并通过命令行管理。

注:微软官方对 Windows Server 原生 Docker Engine 的支持已逐渐转向集成到 WSL2 或推荐使用 Docker Desktop 的无头模式,但在某些旧版文档或特定需求下,可以通过以下步骤尝试原生安装:

步骤 1:启用必要的角色

Install-WindowsFeature -Name Containers -IncludeManagementTools

步骤 2:下载并安装 Docker Engine MSI

由于官方不再直接提供独立的 Docker Engine MSI 供 Server 安装(现已整合进 Docker Desktop 架构),对于 Server 环境,最佳实践依然是安装 Docker Desktop 并在后台运行,或者使用 WSL2 子系统

推荐做法(WSL2 模式下的无头部署):

  1. 安装 WSL2 内核更新
    wsl --install
    # 重启后,默认会安装 Ubuntu 发行版
  2. 在 WSL2 内部安装 Docker
    进入 WSL2 终端(如 Ubuntu):

    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    sudo usermod -aG docker $USER
    newgrp docker
  3. 从 Windows 调用 WSL2 中的 Docker
    现在您可以在 Windows PowerShell 中直接运行 docker 命令,它会自动转发到 WSL2 环境中执行。

    docker run hello-world

常见问题与优化建议

  1. 内存不足
    Docker Desktop 默认可能会占用较多内存。如果是生产环境,建议在设置中限制资源:

    • 右键任务栏 Docker 图标 -> Settings -> Resources。
    • 调整 CPU 和内存限制。
  2. 网络问题
    如果在服务器上无法拉取镜像(Docker Hub 连接超时),需要配置国内镜像提速器。

    • 编辑 %ProgramData%dockerconfigdaemon.json(路径可能因安装位置不同而异)。
    • 添加以下内容(以阿里云为例):
      {
      "registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]
      }
    • 然后重启 Docker 服务:Restart-Service docker
  3. 权限问题
    在 Server 环境下,如果没有将当前用户加入 docker-users 组,可能需要以管理员身份运行 PowerShell。

总结

  • 如果有图形界面:直接下载 Docker Desktop 并勾选 WSL2,最简单稳定。
  • 如果是纯命令行 (Server Core):强烈建议安装 WSL2,然后在 WSL2 内部安装 Docker Engine,最后通过 Windows 命令行调用。这是目前 Windows Server 上最稳健的无头部署方案。
未经允许不得转载:云知识CLOUD » windows server2022搭建docker?