如果我不指定次要版本,文件的实际 Compose 版本是什么?

gun*_*171 5 docker

Docker 有一个文档页面,其中列出了 Compose 版本及其支持的 Docker 引擎版本。简而言之:

Compose 文件格式 Docker Engine 发布
-----------------------------------------
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
...

我知道我可以在我的撰写文件 ( version: "3.6") 中使用特定的主要/次要版本,但是如果我不指定次要版本 ( version: "3") 会怎样?这是否表现为“3.0”、安装的最新 Compose 版本或支持我安装的 Docker 引擎的最高 Compose 文件格式?

举例来说,我有

  • 已安装的最高 Compose 版本为 3.5
  • 已安装 Docker 引擎 17.06.0

我用version: "3". 我可以访问哪些功能集?3.0、3.3、3.5 还是 3.6?

gun*_*171 2

如果您在 Compose 文件中使用version: '3',它将充当 3.0。

Docker 社区论坛上的用户 Raj Chaudhuri 证实了这一点。

您可以访问 3.0。您可以通过运行docker-compose config带有version: '3'.

举个例子,给定这个撰写文件:

版本:'3'

服务:
  html:
    图片:nginx

运行docker-compose.yml --file <filename> config会产生:

服务:
  html:
    图片:nginx
版本:'3.0'

另一种测试方法是简单地创建一个“3”文件,其中包含 3.0 之后引入的功能。configs是3.3版本新增的功能。运行这个文件:

版本:'3'

服务:
  html:
    图片:nginx
    配置:
      - 来源:myconfig
        目标:/tmp/abc.txt

配置:
  我的配置:
    文件:./some-file.txt

将产生一个错误,指示“configs”不是有效的选择。