Moh*_*awo 5 django version docker docker-compose
在文件的第一行docker-compose.yml
我们指定一个版本:
version: '3.9'
Run Code Online (Sandbox Code Playgroud)
这到底是什么意思?!
安装最新版本后,我在 Windows 10 中尝试了以下操作cmd
:
docker-compose --version
Run Code Online (Sandbox Code Playgroud)
输出是:
Docker Compose version v2.17.2
Run Code Online (Sandbox Code Playgroud)
那么我们如何输入3.9
第一行呢?
Dav*_*aze 10
该特定行意味着您正在使用新的 Compose 插件版本,该版本会忽略该version:
行。
Compose 工具有两种不同的实现,一种是用 Python 编写的(docker-compose
带有连字符),另一种是用 Go 编写并作为 Docker 扩展分发(docker compose
带有空格)。您的输出Docker Compose version v2...
意味着您正在使用较新的 Go-plugin 版本的 Compose。
另外,Compose 文件格式有四种不同版本:
版本 | version: |
支持 | Python 编写 | 插件撰写 |
---|---|---|---|---|
1 | 缺席的 | Docker 之前的网络 | 是 | |
2 | 2 , 通过2.4 |
单主机 Docker | 是 | 是 |
3 | 3 , 通过3.8 |
码头工人群 | 是 | 是 |
规格 | 被忽略 | 仅插件撰写 | 是 |
特别是,请参阅Compose 文件版本和升级:从来没有version: '3.9'
,这意味着 Python 版本的 Compose 将拒绝该文件。Compose 的插件版本使用 Compose 规范格式,该格式主要向后兼容版本 2 和版本 3 格式。
版本 2 和 3 有一些细微的差别,特别是在资源限制方面,版本 2 通常直接镜像docker run
选项,而版本 3 有一些与 Swarm 兼容的选项,但如果您不使用它,则会被忽略。
我个人的做法通常是使用version: '3.8'
,这是两个 Compose 实现都支持的最新版本的文件格式。如果我需要资源限制,那么我将使用version: '2.4'
它(我不使用 Swarm)。如果我要写一些使用 Compose 规范特定功能的东西,那么我可能会写version: '4'
来指出差异;我在其他地方的经验是,这些类型的版本标记往往很有用。
截至 2023 年 5 月撰写本文时,Docker 计划在 2023 年 6 月底之前停止支持 Python 版本的 Compose,这将减少该矩阵中的选项数量。特别是,这意味着该version:
行始终被忽略,并且任何文件都将根据 Compose 规范进行解释,而不是旧的文件格式之一。
归档时间: |
|
查看次数: |
4635 次 |
最近记录: |