docker-compose-plugin 与 docker-compose 完整关系梳理
·

目录
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?
结论:docker-compose-plugin 是 Compose V2 的安装包;docker-compose(带横杠)是已经废弃的 Compose V1 独立程序;安装 plugin 后使用 docker compose(空格,V2 新命令)。
一、两者分属两代 Compose
1. docker-compose(V1,旧版,已废弃)
- 全称:Compose V1
- 实现:Python 独立二进制程序,和
dockerCLI 完全分离 - 命令:
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-plugin≠docker-composedocker-compose-plugin提供新版docker compose能力,不提供旧版docker-compose二进制
三、关键区别对照表
| 对比项 | docker-compose(V1 旧版) | docker-compose-plugin(V2 插件) |
|---|---|---|
| 调用命令 | docker-compose ps(横杠) | docker compose ps(空格) |
| 程序形态 | 独立可执行文件 | docker CLI 内置插件 |
| 开发语言 | Python | Go |
| 安装方式 | 手动下载 /pip | apt 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
五、迁移建议
- Linux 服务器统一安装:
apt install docker-compose-plugin/dnf install docker-compose-plugin - 脚本、CI 流水线把所有
docker-compose改为docker compose - 删掉系统残留的旧版 V1 二进制,避免环境混乱
- compose.yml 可删除顶部
version: "3.x"字段(V2 不再需要)
更多推荐


所有评论(0)