Docker compose:{} 在卷定义中的含义

Duš*_*ďar 6 yaml docker docker-compose docker-volume

{}体积定义的含义是什么?

例如

version: '2'

volumes:
  dataelasticsearch: {}

services:   
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.4.3
    volumes:
      - ./dataelasticsearch:/usr/share/elasticsearch/data
Run Code Online (Sandbox Code Playgroud)

Man*_*ash 9

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

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

volumes:
   dataelasticsearch:
Run Code Online (Sandbox Code Playgroud)

docker-compose文档没有对此提供更多见解。

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

volumes:
  - ./dataelasticsearch:/usr/share/elasticsearch/data
Run Code Online (Sandbox Code Playgroud)

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

  • 不,它永远不会意味着空集。`{}` 是标准的 YAML,它表示一个 **mapping**(`hashmap`、`dict` 或在您选择的编程语言中调用的任何内容)。一个空集需要一个标签,看起来像 `!!set {}`。将其留空与执行 `dataelasticsearch: null` 相同,这在语义上与 YAML 与 `{}` 不同,但当然可以由 docker-compose 以相同方式解释 (2认同)