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”不是一个有效的选择。