走啊走
加油

windows server2022安装docker和docker-compose?

服务器价格表

在 Windows Server 2022 上安装 Docker 和 Docker Compose,最推荐且稳定的方式是使用 Docker Desktop for Windows(注意:需要付费许可用于生产环境,或者仅用于开发/测试)。

不过,由于 Windows Server 通常运行在生产环境,官方更推荐使用 Docker Engine (Windows) 配合 Swarm/Kubernetes 模式,或者通过 WSL 2 后端运行。

以下是两种主流方案的详细步骤:


方案一:使用 Docker Desktop for Windows(适合开发、测试或小型部署)

这是最简单的方法,图形化界面友好,自动集成 Docker Compose。

1. 前置要求

  • 操作系统:Windows Server 2022 (建议更新到最新补丁)。
  • 虚拟化:必须开启 Hyper-V 和容器功能。
    • 打开 PowerShell (管理员),运行以下命令启用容器功能:
      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All
      Enable-WindowsOptionalFeature -Online -FeatureName Containers
    • 重启服务器。
  • WSL 2:Docker Desktop 依赖 WSL 2 后端。
    • 确保已安装 WSL 2。如果未安装,运行:
      wsl --install
      # 或者直接指定版本
      wsl --set-default-version 2

2. 下载与安装

  1. 访问 Docker Desktop 官网 下载 Windows 版本。
    • 注意:如果是商业生产环境,请确认您的许可证合规性(个人/非商业用途免费,商业用途需订阅)。
  2. 运行安装包,按照向导完成安装。
  3. 安装完成后,重启电脑

3. 验证安装

打开 PowerShell,输入以下命令:

docker --version
docker compose version

如果显示版本号,说明安装成功。此时 Docker Desktop 会在系统托盘运行。


方案二:使用 Docker Engine + CLI(适合纯生产环境,无 GUI)

如果你不需要图形界面,且希望像 Linux 一样轻量级运行,可以使用 Docker Engine for Windows。这种方式下,docker-compose 通常作为独立的二进制文件或插件存在。

1. 启用容器功能

同方案一,以管理员身份运行 PowerShell:

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

2. 安装 Docker Engine

目前微软官方主要通过 GitHub ReleaseChocolatey 提供 Docker Engine for Windows。

方法 A:使用 Chocolatey (推荐)

  1. 如果未安装 Chocolatey,先安装它(参考官网)。
  2. 以管理员身份运行 PowerShell:
    choco install docker-engine -y

    这将安装 Docker 守护进程和 CLI。

方法 B:手动下载安装包

  1. 访问 Docker Engine Windows GitHub Releases (注意:Docker 官方已不再直接维护 Windows Server 的独立引擎包,更多转向 Containerd 或 K8s,但微软社区仍有镜像)。
  2. 更稳妥的方式是使用微软官方的 Container Host 或通过 winget 安装:
    winget install Docker.DockerDesktop
    # 或者寻找特定的 engine 版本 MSI

    (注:由于 Windows Server 2022 对原生 Docker Engine 的支持逐渐向 WSL 2 靠拢,方案一通常更稳定。如果必须用无头模式,建议直接在 WSL 2 子系统内安装 Docker Engine)

3. 安装 Docker Compose

在较新的 Docker 版本中,Compose 已经集成在 Docker CLI 中(即 docker compose),而不是单独的 docker-compose.exe

  • 检查是否内置

    docker compose version

    如果提示“未识别”,则说明版本较旧,需要单独安装。

  • 手动安装 Docker Compose (v2)

    1. 从 GitHub 下载二进制文件:Docker Compose v2 Release。
    2. 下载 docker-compose-windows-amd64.exe
    3. 将其移动到 Docker 的 bin 目录(通常是 C:Program FilesDockercli-pluginsC:Program FilesDockerbin)。
    4. 确保文件名是 docker-compose.exe (为了兼容旧脚本) 或保持 docker-compose-v2.exe 并在调用时使用 docker compose

    推荐做法(统一使用 v2 命令)
    将下载的 docker-compose.exe 重命名为 docker-compose.exe 并放入 C:Program FilesDockercli-plugins 目录下。这样你就可以直接使用 docker compose up


常见问题与最佳实践

  1. 权限问题

    • 在 Windows Server 上,某些操作可能需要管理员权限。
    • 如果使用 docker run 挂载卷,确保宿主机文件夹有正确的 NTFS 权限。
  2. 网络配置

    • Windows Server 默认可能没有配置外部网络。如果需要容器访问网络,确保 Docker 的网络适配器(Virtual Switch)已正确绑定到物理网卡。
  3. 生产环境建议

    • 不要在生产环境中长期使用 Docker Desktop(因为它包含 GUI 组件且资源占用较高,且有授权限制)。
    • 推荐架构:在 Windows Server 2022 上安装 WSL 2 发行版(如 Ubuntu),然后在 WSL 2 内部安装 Docker Engine 和 Compose。这样既利用了 Linux 内核的优势,又保持了 Windows Server 的管理便利性。
    • WSL 2 内部安装示例

      # 进入 WSL (Ubuntu)
      wsl
      
      # 在 WSL 内部执行安装脚本
      curl -fsSL https://get.docker.com -o get-docker.sh
      sudo sh get-docker.sh

总结

  • 快速上手/开发:选择 方案一 (Docker Desktop)
  • 生产环境/无头模式:建议在 WSL 2 内部安装 Docker Engine,或者严格评估 方案二 的兼容性。

安装完成后,你可以创建一个简单的 docker-compose.yml 进行测试:

version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"

运行 docker compose up -d 即可启动。