如何在docker compose中创建docker卷

如何在docker compose中创建docker卷,docker,docker-compose,Docker,Docker Compose,我有一个docker compose文件来启动我的服务。我需要在主机上为我的服务设置一个卷。据我所知,我必须首先在主机上创建卷(使用docker volume create),然后将卷名放入docker compose文件中。我想知道这是否是创建卷的唯一选项?或者我可以在主机上的docker compose文件中自动创建卷?您可以直接在docker compose中创建命名卷,例如 version: '2.4' services: ubuntu: image: ubuntu:18.

我有一个docker compose文件来启动我的服务。我需要在主机上为我的服务设置一个卷。据我所知,我必须首先在主机上创建卷(使用docker volume create),然后将卷名放入docker compose文件中。我想知道这是否是创建卷的唯一选项?或者我可以在主机上的docker compose文件中自动创建卷?

您可以直接在docker compose中创建命名卷,例如

version: '2.4'

services:
  ubuntu:
    image: ubuntu:18.04
    volumes:
      - myvolume:/opt/myvolume

volumes:
  myvolume: {}
编辑:

卷不需要存在于主机上,请参阅示例日志:

➜ /tmp docker-compose up                                                            
Creating volume "tmp_myvolume" with default driver                                  
Creating tmp_ubuntu_1 ... done
编辑2:

回复注释:是可以为某些卷定义配置的部分。在我的示例中,我传递了空配置,但它可能看起来像

volumes:
   myvolume:
     name: othermyvolumename
     driver: nfs-driver

定义卷后,您可以在
服务
部分中引用它们。

在Compose中可以直接执行此操作。但是myvolume应该已经存在于主机上,对吗?docker Compose文件中的第二个卷做了什么?在哪里列出所有卷?你放了{}但我也看到过有true的地方,这意味着什么?我为你编辑了我的答案-如果你认为这有帮助,如果你能接受,我将非常感激:)卷前面的true或false意味着它是否已经存在于主机上?