参考文档: Compose file versions and upgrading
Volumes 配置参考
虽然可以在服务声明中动态声明卷,但是本节允许你创建可以在多个服务中重用的命名卷(不依赖 volume_from),并且可以使用 docker 命令行 API 轻松检索和检查。
这是一项两种服务设置的示例,其中数据库的数据目录作为卷与另一个服务共享,以便可以定期备份:
1 | version: "3.9" |
顶级 volumes 键下的条目可以为空,在这种情况下,它使用引擎配置的默认的驱动程序(在大多数情况下,这是本地驱动程序)。你可以使用以下键对其进行配置:
driver
指定该卷应使用哪个驱动程序。默认为 Docker Engine 配置为使用的任何驱动程序,在大多数情况下为本地。如果驱动程序不可用,则当 docker-compose up 尝试创建卷时,引擎将返回错误。
1 | driver: foobar |
driver_opts
指定选项列表作为键值对,以传递给该卷的驱动程序。这些选项取决于驱动程序
1 | volumes: |
external
如果设置为 true,指定此卷是在 Compose 之外创建的。docker-compose up 不会尝试创建它,如果卷不存在,则会引发错误。
对于该格式的 3.3版本及更低版本,外部不能与其它卷配置键(driver,driver_opts,labels)结合使用。对于 3.4 版本及更高版本,此限制不再存在。
在下面的示例中,Compose 不会尝试创建一个名为 [projectname]_data 的卷,而是查找一个简单的名为 data 的现有卷,并将其装入 db 服务的容器中。
1 | version: "3.9" |
3.4 版本中弃用了 external.name,改用 name。
1 | volumes: |
labels
使用 Docker 标签将元数据添加到容器。你可以使用数组或字典。建议你使用反向 DNS 表示法,以防止标签与其他软件使用的标签冲突。
1 | labels: |
1 | labels: |
name
为此卷设置一个自定义名称。名称字段可用于引用包含特殊字符的卷。该名称按原样使用,不会与堆栈名称一起作用域。此参数在 3.4 版本后开始支持。
1 | version: "3.9" |
它也可以与 external 属性结合使用
1 | versions: "3.9" |