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

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

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

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+
...

我知道我可以在我的 Compose 文件中使用特定的主版本/次版本 ( version: "3.6"),但如果我不指定次版本 ( version: "3"),会发生什么情况?这是否表示“3.0”、安装的最新 Compose 版本,还是支持我安装的 Docker Engine 的最高 Compose 文件格式?

举个例子,我有

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

然后我用 启动我的 Compose 文件version: "3"。我可以使用哪些功能集?3.0、3.3、3.5 还是 3.6?

答案1

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

用户确认Raj Chaudhuri 在 Docker 社区论坛上

您有权访问 3.0。您可以通过docker-compose config在文件上运行来验证这一点version: '3'

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

版本:'3'

服务:
  HTML:
    图片:nginx

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

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

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

版本:'3'

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

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

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

相关内容