Docker Compose 提示 command not found?先分清是缺插件还是缺文件
摘要:在 Ubuntu 上执行 docker compose up -d 时提示 command not found,很多人的第一反应是重装 Docker。其实先分清两种情况,能省下不少时间。
一、问题现象
在一台新装的 Ubuntu 机器上部署服务,执行:
docker compose up -d
终端提示找不到 compose 命令。此时 Docker 本身可能是正常的,问题出在 Compose 这一层。
二、先做两个判断
第一步,确认 Compose 插件是否存在:
docker compose version
如果有版本输出,说明插件正常,问题在别处;如果提示 command not found,说明缺插件。
第二步,确认当前目录有没有 compose 文件:
ls docker-compose.yml
如果文件不存在,即使插件装好了,命令也无法启动服务。
三、情况一:缺少 Compose 插件
Ubuntu 下最简单的补装方式是用系统源:
sudo apt-get update
sudo apt-get install -y docker-compose-plugin
装完后再执行一次 docker compose version,能看到版本号就说明插件就绪。
如果系统源里没有这个包,可以到 Docker 官方文档按发行版添加软件源,再安装插件。不建议直接下载来历不明的二进制文件。
四、情况二:缺少 compose 文件
有些人机器上只装了 Docker Engine,没有项目文件,直接在空目录执行命令,自然找不到 compose 文件。
处理方式很简单:先获取项目里的 docker-compose.yml,进入文件所在目录,再执行 docker compose up -d。注意命令要在 compose 文件同级目录运行,否则 Compose 会提示找不到配置文件。
五、v1 和 v2 不要混用
还有一个容易混淆的点:docker-compose(带横杠)是旧的 v1,docker compose(空格)是 v2 插件。两者命令很像,但行为有差异。
现在大多数项目按 v2 编写和验证,建议统一使用 v2。遇到 command not found 时,先确认自己敲的是哪一种写法。
六、小结
排查这个报错只需要两步:先看 docker compose version,再看当前目录有没有 docker-compose.yml。前者判断插件,后者判断文件,基本能覆盖大部分情况。
比起直接重装 Docker,先分清"缺插件"还是"缺文件",通常更快。
- 点赞
- 收藏
- 关注作者
评论(0)