【问题标题】:Docker compose: meaning of {} in volume definitionDocker compose:卷定义中{}的含义
【发布时间】:2019-07-15 09:46:34
【问题描述】:

卷定义中{}是什么意思?

例如

version: '2'

volumes:
  dataelasticsearch: {}

services:   
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.4.3
    volumes:
      - ./dataelasticsearch:/usr/share/elasticsearch/data

【问题讨论】:

  • 难道不是空集吗?
  • @LeonardoAlvesMachado YAML 中的集合看起来像!!set {},这是一个空映射。

标签: docker docker-compose yaml docker-volume


【解决方案1】:

这只是一个空映射。这只是意味着没有为命名卷提供额外的选项。

从我所做的测试来看,这与将其留空没有什么不同:

volumes:
   dataelasticsearch:

docker-compose docs 不会对此提供更多见解。

还有一件事:您在顶部定义了一个命名卷,但随后您在服务中绑定了一个已安装的卷:

volumes:
  - ./dataelasticsearch:/usr/share/elasticsearch/data

这里./dataelasticsearch 基本上在您的本地目录中创建一个文件夹,该文件夹作为卷安装。如果您想要此功能,则根本不需要命名卷。

【讨论】:

  • 这是 YAML 语法(不特定于 docker)。 JSON 是 YAML 的子集,{} 是用于空集/映射的 JSON。不需要 compose 来记录您可以使用 YAML 执行的所有操作。
  • 不,它永远不会意味着空集。 {} 是标准 YAML,它表示 映射hashmapdict 或您选择的编程语言中的任何名称)。一个空集需要一个标签,看起来像!!set {}。将其留空与执行 dataelasticsearch: null 相同,这在语义上与 {} 不同的 YAML,但当然可以通过 docker-compose 以相同的方式解释
猜你喜欢
  • 2017-06-30
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
相关资源
最近更新 更多