运行 Docker Compose 时出现错误:"docker:'compose'不是一个 docker 命令"。

10

在我安装了最新版本的 Docker Desktop 后,在我的 M1 Mac Pro 上似乎无法运行 docker compose,尽管已经安装了所有正确的文件。

我尝试在终端中运行 docker-composedocker compose,但是会出现以下消息:docker: 'compose' 不是一个 docker 命令。

在运行 docker --version 后,我的版本是 Docker version 20.10.21, build baeda1f

Compose 已正确添加到我的 PATH 变量中,位于 /usr/local/bin/ 下,其中有以下文件:

com.docker.cli          docker-credential-desktop       fuzzy_match         kubectl.docker
docker                  docker-credential-ecr-login     httpclient          vpnkit
docker-compose          docker-credential-osxkeychain   hub-tool            xcodeproj
docker-compose-v1       docker-index                    kubectl

当我运行which docker-compose时,它返回/usr/local/bin/docker-compose,所以似乎一切都已经正确配置。
此外,出于某种奇怪的原因,运行docker-compose-v1似乎也有效。
有什么想法吗?
编辑:安装最新版本的Docker后,问题似乎已经解决(Docker Desktop 4.14.1(91661),Docker版本20.10.21,构建baeda1f)。

请问您能否检查一下,在您的Docker桌面版中,设置 > 通用 > “启用Docker Compose V2”是否已开启? - tjarbo
如果可行的话,我会直接使用带连字符的 docker-compose - David Maze
@tjarbo 是的,它已启用。 - Flik
@DavidMaze 它不起作用。我尝试了docker composedocker-compose两种方式。 - Flik
对于使用CentOS 7的人来说,docker-compose-plugin-2.12.2-3.el7.x86_64.rpm将在/usr/libexec/docker/cli-plugins/docker-compose安装docker-compose - Nick Dong
1个回答

6

使用softwareupdate --install-rosetta安装Rosetta 2,然后在Docker仪表板 -> 设置 -> 通用中取消选中使用Docker Compose V2


成功了!现在我可以运行 docker-compose 但无法运行别名 docker compose。你有任何想法是为什么吗? - Flik
3
正如你可能已经知道的那样,“docker compose”是调用基于Go的Docker Compose V2的命令。我猜测在苹果M1上,版本为Docker Desktop 4.14.0(91374)存在某种临时问题(我也遇到了同样的问题)。我能找到的最快解决方案是暂时返回到需要Rosetta的V1版本。直到几天前,我在我的M1上完全可以运行V2,所以我希望Docker开发巫师们尽快解决这个问题。 - Rod Pereira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接