奋斗
努力

windows server安装docker和docker-compose?

云计算

在 Windows Server 上安装 Docker 和 Docker Compose,需要根据你使用的 Windows Server 版本(如 2016、2019、2022)以及是否使用 Windows 容器 或 Linux 容器 来决定安装方式。

目前,在 Windows Server 上原生支持的是 Windows 容器。如果你希望运行 Linux 容器,则需要通过 WSL2 + Docker Desktop 的方式,但这通常适用于 Windows Server Core with Desktop Experience 或类似环境,且配置较复杂。

下面以 Windows Server 2019/2022 为例,介绍如何安装 Docker Engine 和 Docker Compose 用于 Windows 容器。


✅ 方法一:在 Windows Server 上安装 Docker Engine(原生 Windows 容器)

步骤 1:启用容器功能

以管理员身份打开 PowerShell:

# 安装容器功能
Install-WindowsFeature -Name Containers

安装完成后建议重启服务器:

Restart-Computer -Force

步骤 2:安装 Microsoft 更新源(可选但推荐)

# 安装 NuGet 包管理器
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

# 注册 Microsoft Update 源
Register-PackageSource -ProviderName PowerShellGet -Name DockerMsftProvider -Location https://dockermsft.azureedge.net/docker -Trusted

步骤 3:安装 Docker Engine

# 安装 Docker
Install-Package -Name docker -ProviderName DockerMsftProvider -Force

首次安装可能提示需要下载并安装,过程可能需要几分钟。


步骤 4:重启系统或重启 Docker 服务

Start-Service docker

或重启:

Restart-Computer -Force

步骤 5:验证 Docker 是否安装成功

docker --version
docker run hello-world:nanoserver

注意:Windows 容器镜像必须与主机版本兼容(如 LTSC2019、LTSC2022)。hello-world:nanoserver 可能不总是可用,你可以尝试:

docker run mcr.microsoft.com/windows/nanoserver:ltsc2022 echo "Hello from Windows Container"

✅ 安装 Docker Compose

Docker Compose 在 Windows 上可以通过 PowerShell 安装为插件或独立二进制文件。

方法 A:使用 PowerShell 安装 Docker Compose 插件(推荐)

# 下载最新版 docker-compose 并放入插件目录
Invoke-WebRequest "https://github.com/docker/compose/releases/latest/download/docker-compose-windows-x86_64.exe" -UseBasicParsing -OutFile $env:ProgramFilesDockerdocker-compose.exe

替换 latest 为具体版本更稳定,例如:

https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-windows-x86_64.exe

验证安装:

docker-compose --version

如果提示命令未找到,请确认 $env:ProgramFilesDocker 已加入系统 PATH。


方法 B:使用独立的 Compose 插件(现代 Docker 推荐)

确保 Docker 使用 docker compose(带空格)命令,这需要安装 Docker-Compose 作为 CLI 插件。

创建插件目录并下载:

$pluginDir = "$env:ProgramDataDockercli-plugins"
if (!(Test-Path $pluginDir)) { New-Item -ItemType Directory -Path $pluginDir }

Invoke-WebRequest `
  -Uri "https://github.com/docker/compose/releases/latest/download/docker-compose-windows-x86_64.exe" `
  -UseBasicParsing `
  -OutFile "$pluginDirdocker-compose.exe"

然后就可以使用:

docker compose version

注意:这是 docker compose(中间有空格),不是 docker-compose(带连字符)。


✅ 示例:使用 docker-compose.yml 运行一个简单服务

创建 docker-compose.yml 文件:

version: '3.7'

services:
  iis:
    image: mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
    ports:
      - "80:80"
    container_name: my-iis

运行:

docker compose up -d

访问 http://<your-server-ip> 应该能看到 IIS 欢迎页。


⚠️ 注意事项

  1. Windows 容器版本必须匹配主机 OS 构建号
    例如:Windows Server 2022(版本 21H2)只能运行 ltsc2022 镜像。

  2. 不支持 Linux 容器(除非使用 WSL2)
    原生 Windows Server 不支持 WSL2,因此无法运行 Linux 容器。若需运行 Linux 容器,考虑使用:

    • Windows 10/11 + WSL2 + Docker Desktop
    • 或使用 Hyper-V 虚拟机运行 Linux + Docker
  3. 防火墙和端口开放
    确保防火墙允许所需端口(如 80、443)。

  4. Docker 更新

Update-Package -Name docker -ProviderName DockerMsftProvider

❌ 不推荐:Docker Desktop for Windows Server

Docker Desktop 主要面向桌面系统(Windows 10/11),官方不支持在 Windows Server 上运行 Docker Desktop,尽管技术上可以安装,但违反许可协议,不推荐生产使用。


总结

步骤 命令
启用容器 Install-WindowsFeature Containers
安装 Docker Install-Package -Name docker -ProviderName DockerMsftProvider
安装 Docker Compose 下载 docker-compose.exe 到 Docker 目录或插件目录
验证 docker --version, docker compose version

如有进一步需求(如配置私有仓库、TLS、Swarm 模式等),欢迎继续提问!

未经允许不得转载:云服务器 » windows server安装docker和docker-compose?