前言
在实际运维中,我们经常会遇到不同机器上 Docker 版本不一致的情况,尤其是很多生产服务器还在运行较老的 Docker Engine 版本(如 19.03.x)。这时候安装 Docker Compose 就会有两种完全不同的方式:
- 方式一:独立二进制版(docker-compose,带连字符) —— 经典的 Compose V1
- 方式二:CLI 插件版(docker compose,无连字符) —— 现代的 Compose V2/V5
本文以 Docker 19.03.15(Ubuntu 20.04)为例,详细对比这两种方式的安装、使用和特点,帮助你快速选择适合自己的方案。
1. 方式一:独立二进制版(docker-compose)
这是最传统、最兼容的方式,适用于所有 Docker 版本(甚至非常老的版本)。
安装步骤
# 下载 Compose V1 最后一个稳定版(1.29.2)
sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose# 验证
docker-compose --version
# 输出:docker-compose version 1.29.2, build 5becea4c
特点
- 命令:
docker-compose up -d、docker-compose --env-file .env up -d - 完全独立于 Docker Engine,不依赖任何插件机制
- 支持
--env-file多文件加载(你的需求完全满足) docker info中不会显示 compose 插件信息- 已被官方标记为“维护模式”(不再新增功能,但仍可正常使用)
优点
- 兼容性极强,几乎能在任何 Docker 版本上运行
- 安装简单、一行命令搞定
- 不需要升级 Docker Engine
缺点
- 命令带连字符(与新版不统一)
- 缺少 Compose V2 的新特性(如更好的 profiles、build secrets 支持)
2. 方式二:CLI 插件版(docker compose)
这是 Docker 官方目前推荐的方式,Compose 作为 Docker CLI 的插件存在。
安装步骤(适用于 Docker 19.03+)
# 创建用户级插件目录(推荐)
mkdir -p ~/.docker/cli-plugins# 下载最新 Compose V2(当前推荐 v5.0.1,文件较大约60MB)
curl -SL https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose# 如果下载慢,可加国内代理
# curl -SL https://ghfast.top//https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose# 添加执行权限
chmod +x ~/.docker/cli-plugins/docker-compose# 验证
docker compose version
# 输出:Docker Compose version v5.0.1docker info | grep -i compose
# 输出:compose: Docker Compose (Docker Inc., v5.0.1)
特点
- 命令:
docker compose up -d、docker compose --env-file .env --env-file .env.other up -d - 完全集成到 Docker CLI 中
docker info会明确显示 compose 插件信息(和其他机器一致)- 支持所有新版 Compose 特性
优点
- 命令风格统一(docker compose、docker buildx 等)
- 获得最新功能和安全更新
- 官方主力维护方向
缺点
- 二进制文件较大(60MB vs V1 的 12MB)
- 手动安装稍复杂(需放到正确插件目录)
- 如果 Docker 版本过老(如 <19.03),可能不被识别
对比总结表
| 项目 | 方式一(V1 独立版) | 方式二(V2 插件版) |
|---|---|---|
| 命令 | docker-compose(带-) |
docker compose(空格) |
| 安装难度 | 极简单 | 稍复杂(需放插件目录) |
| 文件大小 | ~12MB | ~60MB |
| docker info 显示插件 | 不显示 | 显示 compose 插件版本 |
| 是否支持 --env-file | 支持(多文件) | 支持(多文件) |
| 兼容 Docker 19.03 | 完美 | 完美 |
| 官方维护状态 | 维护模式(不再更新) | 积极维护(持续更新) |
| 推荐场景 | 快速解决、不想升级 Docker 的老服务器 | 追求统一体验、愿意接受新版本的团队 |
结论与建议
- 如果你只想快速解决问题:强烈推荐方式一(独立二进制版)。一行命令安装,几秒钟搞定,功能完全够用。
- 如果你追求和团队其他机器统一体验(docker info 显示插件、命令无连字符):使用方式二(插件版),效果和其他新机器完全一致。
- 长期建议:找机会升级 Docker Engine 到最新版(28.x+),通过
apt install docker-compose-plugin一键安装插件,彻底告别手动操作。