docker-compose与Docker Compose到底有什么区别?
docker-compose与Docker Compose到底有什么区别?
简单来说,docker-compose(带连字符)和 docker compose(中间有空格)是同一个工具在不同时代的两种形态。
它们的核心区别可以总结为以下几点:
🔍 核心区别对比
| 特性 | docker-compose (V1 / Standalone) | docker compose (V2 / Plugin) |
|---|---|---|
| 命令形式 | 独立的二进制程序,命令带连字符 - |
Docker CLI 的内置插件,命令用空格分隔 |
| 底层实现 | 基于 Python 编写 | 基于 Go 语言重写,与 Docker 引擎深度集成 |
| 安装方式 | 需要单独下载并赋予执行权限 | 随 Docker Desktop 自动安装,或作为插件手动放入目录 |
| 性能表现 | 相对较慢,启动有进程开销 | 速度更快,直接通过 Docker 主命令调用 |
| 维护状态 | 已弃用 (Deprecated),官方不再积极更新 | 官方主推,持续更新并支持最新功能 |
💡 为什么会有这两种写法?
过去 (docker-compose):早期的 Docker Compose 是一个完全独立的工具(V1版本),它是用 Python 写的。你需要像安装普通软件一样,单独把它下载下来放到系统路径里才能使用。
现在 (docker compose):从 Docker 20.10 版本开始,官方将 Compose 用 Go 语言重写,并将其作为 Docker 命令行(CLI)的一个插件(V2版本)。这样它就和 docker build、docker run 等命令完美融合在了一起,性能和兼容性都更好。
📌 对你的实际影响
配置文件通用:无论是用哪种命令,它们读取的配置文件都是同一个(即 docker-compose.yml),语法基本完全兼容。
脚本适配:你现在遇到的 openjiuwen 部署脚本(service.sh)之所以报错,是因为现在的开发工具和脚本为了追求更好的性能和未来兼容性,都在逐步淘汰旧版的 docker-compose,转而强制检测新版的 docker compose 插件是否存在。
总结一下: 以后在写命令或者看新教程时,请习惯使用 docker compose(中间带空格);只有当你维护一些非常古老的遗留项目或脚本时,才可能需要用到带连字符的 docker-compose。
1. 创建插件目录(如果不存在)
sudo mkdir -p /usr/libexec/docker/cli-plugins
2. 手动下载 docker-compose 插件二进制文件
注意:根据你的系统架构($(uname -m)),使用 GitHub 的 Release 下载
如果下载很慢,可以尝试将链接中的 https://github.com 替换为 https://ghproxy.com/github.com (国内加速)
sudo curl -L “https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-linux-$(uname -m)” -o /usr/libexec/docker/cli-plugins/docker-compose
3. 添加执行权限
sudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose
sudo mkdir -p /usr/libexec/docker/cli-plugins
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-linux-$(uname -m)" -o /usr/libexec/docker/cli-plugins/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0
100 56.4M 100 56.4M 0 0 50240 0 0:19:39 0:19:39 --:–:-- 478k
sudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose
docker compose version
Docker Compose version v2.24.0
更多推荐

所有评论(0)