目录

结论:docker-compose-plugin 是 Compose V2 的安装包;docker-compose(带横杠)是已经废弃的 Compose V1 独立程序;安装 plugin 后使用 docker compose(空格,V2 新命令)。

一、两者分属两代 Compose

1. docker-compose(V1,旧版,已废弃)

2. docker-compose-plugin(V2 插件包,当前官方标准)

二、核心关系图解

三、关键区别对照表

四、常见场景答疑

1. 安装了 docker-compose-plugin,为什么敲 docker-compose 提示 command not found?

2. 能不能同时装 V1 和 docker-compose-plugin?

3. Docker Desktop 为什么不用手动装 docker-compose-plugin?

4. 怎么区分当前用的是哪一套?

五、迁移建议


结论:docker-compose-plugin 是 Compose V2 的安装包;docker-compose(带横杠)是已经废弃的 Compose V1 独立程序;安装 plugin 后使用 docker compose(空格,V2 新命令)。

一、两者分属两代 Compose

1. docker-compose(V1,旧版,已废弃)

  • 全称:Compose V1
  • 实现:Python 独立二进制程序,和 docker CLI 完全分离
  • 命令:docker-compose up(中间是横杠 -
  • 安装方式:单独下载二进制 / pip install docker-compose
  • 生命周期:2023 年官方停止维护,不再更新、无安全补丁
  • 定位:老一代多容器编排工具,性能差、依赖 Python 环境

2. docker-compose-plugin(V2 插件包,当前官方标准)

  • 全称:Docker Compose V2 CLI Plugin
  • 实现:Go 语言编写,Docker CLI 插件,深度嵌入 docker 主程序
  • 包名:Linux 系统安装包就叫 docker-compose-plugin(apt/yum/dnf)
  • 使用命令:docker compose up(中间是空格,无横杠)
  • 工作原理:安装插件后,docker 命令会多出 compose 子命令
  • 状态:持续迭代、官方唯一推荐方案,支持 BuildKit、profiles、include 等新特性

二、核心关系图解

旧架构(V1):
独立程序 → /usr/local/bin/docker-compose → 命令 docker-compose xxx

新架构(V2):
安装包 docker-compose-plugin → 给 docker CLI 装上 compose 插件 → 命令 docker compose xxx
  • docker-compose-plugindocker-compose
  • docker-compose-plugin 提供新版 docker compose 能力,不提供旧版 docker-compose 二进制

三、关键区别对照表

对比项docker-compose(V1 旧版)docker-compose-plugin(V2 插件)
调用命令docker-compose ps(横杠)docker compose ps(空格)
程序形态独立可执行文件docker CLI 内置插件
开发语言PythonGo
安装方式手动下载 /pipapt install docker-compose-plugin
维护状态停止维护、废弃持续更新、官方主推
性能启动慢,依赖 Python 解释器更快,原生二进制
新功能无新增watch、profiles、include、GPU 完整支持
与 docker 联动隔离,两套进程共享上下文、凭证、BuildKit

四、常见场景答疑

1. 安装了 docker-compose-plugin,为什么敲 docker-compose 提示 command not found?

正常现象:插件只提供 docker compose,不生成旧版 docker-compose 命令。 兼容方案(临时兼容老脚本):

# 创建软链接,让 docker-compose 指向新版插件
ln -s /usr/bin/docker /usr/local/bin/docker-compose

2. 能不能同时装 V1 和 docker-compose-plugin?

不建议,会出现命令冲突、参数行为不一致、构建逻辑差异,生产环境只保留 plugin。

3. Docker Desktop 为什么不用手动装 docker-compose-plugin?

Windows/macOS 的 Docker Desktop 已经内置 compose v2 插件,开箱即用;只有 Linux 服务器手动装 docker-engine 时,需要额外安装 docker-compose-plugin

4. 怎么区分当前用的是哪一套?

# 查看V2插件版本(装了plugin才会输出)
docker compose version

# 查看旧版V1(有独立二进制才会输出)
docker-compose --version

五、迁移建议

  1. Linux 服务器统一安装:apt install docker-compose-plugin / dnf install docker-compose-plugin
  2. 脚本、CI 流水线把所有 docker-compose 改为 docker compose
  3. 删掉系统残留的旧版 V1 二进制,避免环境混乱
  4. compose.yml 可删除顶部 version: "3.x" 字段(V2 不再需要)

更多推荐