这是我的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)
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)
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-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
我希望这能解决问题。
小智 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)
如果使用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状态
| 归档时间: |
|
| 查看次数: |
67245 次 |
| 最近记录: |