当前位置:   article > 正文

Docker Compose file 版本3参考_docker-compose版本对应

docker-compose版本对应

这些主题描述了 Compose 文件格式的版本 3。这是最新版本。

Compose 和 Docker 兼容性矩阵

Compose 文件格式有多个版本 – 1、2、2.x 和 3.x。下表是一个快速浏览。有关每个版本包含的内容以及如何升级的完整详细信息,请参阅关于版本和升级

此表显示了哪些 Compose 文件版本支持特定的 Docker 版本。

编写文件格式Docker 引擎发布
撰写规范19.03.0+
3.819.03.0+
3.718.06.0+
3.618.02.0+
3.517.12.0+
3.417.09.0+
3.317.06.0+
3.217.04.0+
3.11.13.1+
3.01.13.0+
2.417.12.0+
2.317.06.0+
2.21.13.0+
2.11.12.0+
2.01.10.0+

除了表中显示的 Compose 文件格式版本外,Compose 本身也在发布计划中,如Compose 版本中所示,但文件格式版本不一定随着每个版本增加。例如,Compose 文件格式 3.0 在Compose 版本 1.10.0中首次引入,并在后续版本中逐步进行版本化。

最新的 Compose 文件格式由Compose 规范定义,并由 Docker Compose 1.27.0+实现。

编写文件结构和示例

以下是 Docker for Beginners 实验室 主题中使用的投票应用程序示例中的示例 Compose 文件,主题为将应用程序部署到 Swarm

示例撰写文件版本 3

此参考页面上的主题按顶级键的字母顺序组织,以反映 Compose 文件本身的结构。在配置文件中定义部分的顶级键(例如builddeploydepends_on、 networks等)与支持它们的选项一起作为子主题列出。这映射到<key>: <option>: <value>Compose 文件的缩进结构。

服务配置参考

Compose 文件是定义 服务、 网络和 卷的YAML文件。Compose 文件的默认路径是../docker-compose.yml

提示:您可以为此文件使用 a.yml或扩展名。.yaml他们都工作。

服务定义包含应用于为该服务启动的每个容器的配置,就像将命令行参数传递给 docker run. 同样,网络和卷定义类似于 docker network createdocker volume create

docker runDockerfile 中指定的选项一样CMD, 默认情况下会尊重EXPOSEVOLUME, , 等选项ENV- 您无需在docker-compose.yml.

您可以使用类似 Bash 的 ${VARIABLE}语法在配置值中使用环境变量 - 有关完整详细信息,请参阅变量替换

本节包含版本 3 中服务定义支持的所有配置选项的列表。

build

在构建时应用的配置选项。

build可以指定为包含构建上下文路径的字符串:

  1. version: "3.9"
  2. services:
  3. webapp:
  4. build: ./dir

或者,作为具有在上下文中指定的路径和可选的 Dockerfileargs的对象:

  1. version: "3.9"
  2. services:
  3. webapp:
  4. build:
  5. context: ./dir
  6. dockerfile: Dockerfile-alternate
  7. args:
  8. buildno: 1

如果您指定imageas ,则 Compose 使用 和中指定的可选build名称来命名构建的图像:webapptagimage

  1. build: ./dir
  2. image: webapp:tag

这会生成一个名为webapp并标记为 的图像tag,由 构建./dir

使用 docker stack deploy 时的注意事项

在 swarm 模式下部署堆栈build时忽略 该选项 该命令在部署之前不会构建映像。docker stack

context

包含 Dockerfile 的目录的路径或 git 存储库的 url。

当提供的值是相对路径时,它被解释为相对于 Compose 文件的位置。此目录也是发送到 Docker 守护程序的构建上下文。

Compose 使用生成的名称构建和标记它,然后使用该图像。

  1. <span style="color:#0f161e"><span style="background-color:#ffffff"><span style="color:#0c5176 !important"><span style="background-color:#f5f8fa !important"><code><span style="color:#658b00">build</span>:
  2. <span style="color:#658b00">context</span>: <span style="color:#cd5555">./dir</span>
  3. </code></span></span></span></span>

dockerfile

备用 Dockerfile。

Compose 使用备用文件进行构建。还必须指定构建路径。

  1. build:
  2. context: .
  3. dockerfile: Dockerfile-alternate

args

添加构建参数,它们是只能在构建过程中访问的环境变量。

首先,在 Dockerfile 中指定参数:

  1. # syntax=docker/dockerfile:1
  2. ARG buildno
  3. ARG gitcommithash
  4. RUN echo "Build number: $buildno"
  5. RUN echo "Based on commit: $gitcommithash"

然后指定build键下的参数。您可以传递映射或列表:

  1. build:
  2. context: .
  3. args:
  4. buildno: 1
  5. gitcommithash: cdc3b19
  1. build:
  2. context: .
  3. args:
  4. - buildno=1
  5. - gitcommithash=cdc3b19

构建参数的范围

在您的 Dockerfile 中,如果您在指令 ARG之前指定,则在. 如果您需要一个参数在两个地方都可用,请在说明下指定它。有关使用详细信息,请参阅文档中的了解 ARGS 和 FROM 如何交互 部分。FROMARGFROMFROM

您可以在指定构建参数时省略该值,在这种情况下,它在构建时的值是运行 Compose 的环境中的值。

  1. args:
  2. - buildno
  3. - gitcommithash

使用布尔值时的提示

YAML 布尔值 ( "true""false""yes""no""on""off") 必须用引号引起来,以便解析器将它们解释为字符串。

cache_from

3.2 版文件格式添加

引擎用于缓存解析的图像列表。

  1. build:
  2. context: .
  3. cache_from:
  4. - alpine:latest
  5. - corp/web_app:3.14v

labels

3.3 版文件格式中添加

使用Docker 标签将元数据添加到生成的图像。您可以使用数组或字典。

建议您使用反向 DNS 表示法,以防止您的标签与其他软件使用的标签冲突。

  1. build:
  2. context: .
  3. labels:
  4. com.example.description: "Accounting webapp"
  5. com.example.department: "Finance"
  6. com.example.label-with-empty-value: ""
  1. build:
  2. context: .
  3. labels:
  4. - "com.example.description=Accounting webapp"
  5. - "com.example.department=Finance"
  6. - "com.example.label-with-empty-value"

network

3.4 版文件格式添加

RUN在构建期间设置网络容器连接以获取说明。

  1. build:
  2. context: .
  3. network: host
  1. build:
  2. context: .
  3. network: custom_network_1

用于none在构建期间禁用网络:

  1. build:
  2. context: .
  3. network: none

shm_size

3.5 版文件格式添加

设置/dev/shm此构建容器的分区大小。指定为表示字节数的整数值或表示字节值的字符串。

  1. build:
  2. context: .
  3. shm_size: '2gb'
  1. build:
  2. context: .
  3. shm_size: 10000000

target

3.4 版文件格式添加

构建在Dockerfile. 有关详细信息,请参阅 多阶段构建文档

  1. build:
  2. context: .
  3. target: prod

cap_add, cap_drop 

添加或删除容器功能。查看man 7 capabilities完整列表。

  1. cap_add:
  2. - ALL
  3. cap_drop:
  4. - NET_ADMIN
  5. - SYS_ADMIN

使用 docker stack deploy 时的注意事项

swarm 模式下部署堆栈cap_add时忽略andcap_drop选项

cgroup_parent 

为容器指定一个可选的父 cgroup。

cgroup_parent: m-executor-abcd

使用 docker stack deploy 时的注意事项

在 swarm 模式下部署堆栈cgroup_parent时忽略 该选项

command

覆盖默认命令。

command: bundle exec thin -p 3000v

该命令也可以是一个列表,其方式类似于 dockerfile

command: ["bundle", "exec", "thin", "-p", "3000"]

configs
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/180669

推荐阅读
相关标签