Docker compose “中的版本”/docker compose.yml“;不受支持。您可能会看到此错误,因为您';重新使用错误的撰写文件版本

Docker compose “中的版本”/docker compose.yml“;不受支持。您可能会看到此错误,因为您';重新使用错误的撰写文件版本,docker-compose,Docker Compose,这是我的docker-compose.yml文件: version: '3.1' services: a: image: tutum/hello-world b: image: tutum/hello-world secrets: id: my_password 如果我运行$docker compose up我会得到以下结果: 不支持“/docker compose.yml”中的版本。您可能会看到此错误,因为您使用了错误的撰写文件版本 我的docker撰写版本:

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

version: '3.1'

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

secrets:
  id: my_password
如果我运行
$docker compose up
我会得到以下结果:

不支持“/docker compose.yml”中的版本。您可能会看到此错误,因为您使用了错误的撰写文件版本

我的docker撰写版本:

$ docker-compose --version
docker-compose version 1.11.0, build 6de1806

这里怎么了?我的docker compose版本不应该支持docker-compose.yml规范的v3.1吗(根据,它支持)?

您做的一切都是正确的,应该可以工作。但是docker compose 1.11.0中有一个错误,它无法识别文件格式3.1是否有效。(3.0工程)

docker compose(1.11.1)已经发布了一个新版本,其中包括错误修复:

错误修正

修复了Compose解析器无法识别3.1文件格式有效的错误

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

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

rm /usr/local/bin/docker-compose
重新安装:

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
现在文件格式上不再有错误了。(我没有用你的.yml进行测试)


如果使用linux/ubuntu,这可能是显而易见的,但要小心以root用户身份运行

docker-compose -v
给予

vs

给予


另外,请确保docker compose和docker machine是最新的,因为我已通过升级docker compose解决了此问题

按照以下步骤升级ubuntu16.04中的docker compose

步骤1:

$which docker-compose
/usr/bin/docker-compose
步骤2:

$sudo rm /usr/bin/docker-compose
步骤3:

curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
步骤4:

chmod +x /usr/bin/docker-compose

在实现lvthillo的解决方案之前,我已经完成了docker compose--version,但仍然会出现过时的版本。结果是我需要刷新bashshell所持有的哈希列表<代码>哈希-r。。。希望这对其他人有用

尝试卸载旧版本并重新安装

sudo apt remove docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
reboot
应该打印出来

docker-compose --version
docker-compose version 1.22.0, build 1719ceb

在osx 10.12.6 sierra上

v1.22或更高版本的步骤

我有一个特定的问题/不兼容,我不想完全升级docker。我目前被困在docker 17.06.0-ce-mac18上。所以我只想升级docker compose,其他什么都不想

我的步骤:

  • 确定docker compose的位置:
    哪个docker compose
  • 确定docker compose版本:
    docker compose--version
    =
    docker compose版本1.14.0,构建c7bdf9e
  • 备份以前的docker compose?:
    mv/usr/local/bin/docker compose/usr/local/bin/docker compose bak
  • 取代
    
    旋度-Lhttps://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname-s`-`uname-m`>/usr/local/bin/docker-compose
    
  • 如果您需要确定最新版本,只需检查上述版本并将其替换为最新版本即可
  • 验证版本:
    docker compose--version
    =
    docker compose version 1.22.0,构建f46880f

    • 如果不注意具体错误,我们无法告诉您 首先通过运行此命令检查它

      docker构建。
      当你得到错误,然后在谷歌搜索它 在我的例子中,当我用sudo尝试它时,是权限错误,它起作用了


      如果您的文件版本为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.
      
      以下是解决方案:-

      (1)
      sudo apt get remove docker compose
      sudo 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


      我希望这能解决问题。

      要获得最新版本的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
      

      我通过确保我的新代码其余代码对齐来解决这个问题。它似乎需要某种格式,如果它与代码的其余部分不一致,它将看不到“此组合文件的有效顶级部分:版本、服务、网络、卷、机密、配置和以“x-”开头的扩展名”

      尝试使用“sudo”



      你的docker(不是docker compose)的版本是什么?docker版本1.13.0,构建49bf474its
      docker compose
      和非
      docker compose
      @AbdouTahiri CLI是
      docker compose
      docker compose
      是技术。。在版本
      “3.6”
      中面临同样的问题。我的docker是
      18.03.0-ce,build 0520e24
      谢谢。由于某些原因,你的curl命令在ubuntu 16.04中对我不起作用。然后我根据官方网站上的指南更新到了最新的docker compose版本,这与上述内容大致相同。但是在curl cmd中,“>”改为“-o”。Bug也影响到1.8.0版;版本1.16.1是有用的,并且在Ubuntu 16.04上工作得很好。只需修复上面路径的版本组件,无法将其清晰粘贴在此注释中,因为有反引号:/n不知道原因,但
      curl
      命令不执行。。表示权限被拒绝。如果在运行
      curl
      命令时遇到错误,请尝试以下操作:@DeepakSharma您必须以root用户身份执行curl和chmod命令(或使用sudo),这应该是正确的答案。我在Ubuntu中,我必须使用SUDO命令来工作SUDO docker compose-v给我docker compose 1.8.0版,用SUDO-1构建未知。Sudo不好。这里有一个替代方案:不错的添加,尽管我不会说它“不好”。请随意编辑答案,将其作为一个补充。这对我在初级操作系统Loki(0.4.1)上很有效。因为docker的版本经常更改,请看这里f
      sudo apt remove docker-compose
      sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      sudo chmod +x /usr/local/bin/docker-compose
      reboot
      
      docker-compose --version
      docker-compose version 1.22.0, build 1719ceb
      
      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.
      
      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
      
      sudo docker-compose up