在 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 欢迎页。
⚠️ 注意事项
-
Windows 容器版本必须匹配主机 OS 构建号
例如:Windows Server 2022(版本 21H2)只能运行ltsc2022镜像。 -
不支持 Linux 容器(除非使用 WSL2)
原生 Windows Server 不支持 WSL2,因此无法运行 Linux 容器。若需运行 Linux 容器,考虑使用:- Windows 10/11 + WSL2 + Docker Desktop
- 或使用 Hyper-V 虚拟机运行 Linux + Docker
-
防火墙和端口开放
确保防火墙允许所需端口(如 80、443)。 -
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 模式等),欢迎继续提问!
云服务器