"./docker-compose.yml"中的版本不受支持.您可能会看到此错误,因为您使用的是错误的Compose文件版本

Eri*_*ric 75 docker-compose

这是我的docker-compose.yml文件:

version: '3.1'

services:
  a:
    image: tutum/hello-world
  b:
    image: tutum/hello-world

secrets:
  id: my_password
Run Code Online (Sandbox Code Playgroud)

如果我跑,$ docker-compose-up我得到这个:

"./docker-compose.yml"中的版本不受支持.您可能会看到此错误,因为您使用的是错误的Compose文件版本.

我的docker-compose版本:

$ docker-compose --version
docker-compose version 1.11.0, build 6de1806
Run Code Online (Sandbox Code Playgroud)

这有什么不对?我的docker-compose版本不应该支持docker-compose.yml规范的v3.1(根据发行说明,它确实如此)?

lvt*_*llo 78

你正在做的一切正常,它应该工作.但是在docker-compose 1.11.0中有一个错误,它没有将文件格式3.1识别为有效.(3.0作品).

已经有一个新版本的docker-compose(1.11.1),它包含了bugfix:

Bug修复

修复了Compose解析器未将3.1文件格式识别为有效的错误

因此,如果您想使用文件格式3.1,我建议您升级您的docker-compose版本.

目前升级docker-compose最安全的方法是删除它并重新安装它.

rm /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

重新安装:

curl -L https://github.com/docker/compose/releases/download/1.11.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose version 1.11.1, build 7c5d5e4
Run Code Online (Sandbox Code Playgroud)

现在,文件格式上不再出现错误.(我没有用你的.yml测试).

docker-compose up
Starting compose_a_1
Starting compose_b_1
Run Code Online (Sandbox Code Playgroud)

  • Bug也困扰版本1.8.0; 版本1.16.1可用,并在Ubuntu 16.04上完美运行.只需修复上面路径的版本组件,由于反引号,无法将其粘贴在此注释中:/ (8认同)
  • 谢谢。由于某种原因,在Ubuntu 16.04中,您的curl cmd对我不起作用。然后我按照此处官方网站上的指南将其更新为最新的docker-compose版本。https://docs.docker.com/compose/install/,与上面大致相同。但是在curl cmd中,“>”更改为“ -o”。 (3认同)

Tha*_*han 41

我通过升级docker-compose解决了这个问题.

以下步骤在ubuntu16.04中升级docker-compose

步骤1:

$which docker-compose
/usr/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

第2步:

$sudo rm /usr/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

第3步:

curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

第4步:

chmod +x /usr/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

  • 由于docker更改版本经常在这里查看安装最新的docker版本https://github.com/docker/compose/releases/ (6认同)

dPa*_*Pac 29

如果您的文件版本是 3.7 并且您收到以下错误:

ERROR: Version in "./config.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
Run Code Online (Sandbox Code Playgroud)

这是解决方案: -

(1)sudo apt-get remove docker-composesudo rm /usr/local/bin/docker-compose

(2) sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

(3) sudo chmod +x /usr/local/bin/docker-compose

(4) sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

我希望这能解决问题。

  • 你可能想去 https://github.com/docker/compose/releases 查看最新版本,此时版本为 1.27.4 (6认同)
  • 到了 2022 年,您需要在版本前加上字母“v”。例如: `sudo curl -L "https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr /local/bin/docker-compose` (3认同)

小智 10

要获取最新版本的 docker-compose :

sudo apt remove docker-compose
curl -L https://github.com/docker/compose/releases/download/1.28.4/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)


Gle*_*son 6

如果使用linux / ubuntu,这也许很明显,但是要小心,以root身份运行,例如

docker-compose -v
Run Code Online (Sandbox Code Playgroud)

docker-compose version 1.8.0, build unknown
Run Code Online (Sandbox Code Playgroud)

sudo docker-compose -v 
Run Code Online (Sandbox Code Playgroud)

docker-compose version 1.17.1, build 6d101fb
Run Code Online (Sandbox Code Playgroud)

还要确保docker-compose和docker -machine是最新的@lvthillo状态