无法安装 Docker Compose v2:“无效插件,执行格式错误”

Posted

技术标签:

【中文标题】无法安装 Docker Compose v2:“无效插件,执行格式错误”【英文标题】:Cannot install Docker Compose v2: "Invalid Plugin, exec format error" 【发布时间】:2021-11-30 01:47:03 【问题描述】:

我按照docs.docker.com(Ubuntu 20.04)上的说明安装了新的docker compose CLI,无法使用插件。

命令docker compose help显示:

$ docker compose help
docker: 'compose' is not a docker command.
See 'docker --help' 

运行docker help 时,我得到:

$ docker help

Usage:  docker [OPTIONS] COMMAND

[[ OMMITTED NORMAL OUTPUT ]]

Invalid Plugins:
  compose     failed to fetch metadata: fork/exec /home/myname/.docker/cli-plugins/docker-compose: exec format error

Run 'docker COMMAND --help' for more information on a command.

To get more help with docker, check out our guides at https://docs.docker.com/go/guides/

/usr/local/lib/docker/cli-plugins 下安装并以 root 身份运行命令时相同。

我目前使用docker 20.10.7 版和docker-compose 1.28.0 版。

我做错了什么?如何让新的compose 工作?

【问题讨论】:

错误信息有一个插件文件名和exec format error;插件到底是什么样的文件?需要解压,解压tar文件,还是别的什么? @DavidMaze 这是一个从github.com/docker/compose/releases/tag/v2.0.0 下载的二进制文件——根据链接网站上的文档,不需要解压,只需chmod +x 你检查了吗? file ~/.docker/cli-plugins/docker-compose? @DavidMaze :o 你是对的:链接错误,2.0.0 版中不存在同名资产!显然已在 2.0.1 中修复...我错误地认为如果链接无效,curl 会崩溃。 【参考方案1】:

使用版本 2.0.1 而不是 2.0.0

解决了问题

在文档更新之前,只需更改 cURL 命令即可下载更新版本:

curl -SL https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose

原因是 Github 版本中缺少资产。

像魅力一样工作:

$ docker compose version
Docker Compose version v2.0.1

编辑:截至 2021 年 10 月 26 日,文档已更新为链接到正确的下载工件。此答案对于缺少工件的情况仍然有效,这可能会发生在未来的版本或其他插件中。

【讨论】:

以上是关于无法安装 Docker Compose v2:“无效插件,执行格式错误”的主要内容,如果未能解决你的问题,请参考以下文章

docker Compose 下载安装

docker-compose安装graylog

Testcontainers DockerComposeContainer 与 Docker Compose 版本 v2.0.0

Docker Compose文件详解 V2

docker desktopdocker compose

docker desktopdocker compose