为什么我们需要服务内的卷和 docker compose 文件中的卷

Avv*_*Avv 3 docker docker-compose

我想理解为什么我们volumes在 docker compose 文件中有内部服务,而volumes在同一个文件中有外部服务?我们不能只用一个吗?

下面是一个用postgres数据库构建的durpal内容管理系统:

version: '2'

services:
  durpal:
    image: durpal
    ports:
      - '8080:80'
    volumes:
      - drupal-modules:/var/www/html/modules
      - drupal-profiles:/var/www/html/profiles
      - drupal-sites:/var/www/html/sites
      - drupal-themes:/var/www/html/themes
  postgres:
    image: postgres
    environment:
      - POSTGRES_PASSWORD = mypasswd
volumes:
  - drupal-modules:
  - drupal-profiles:
  - drupal-sites:
  - drupal-themes:
Run Code Online (Sandbox Code Playgroud)

acr*_*ran 5

请参阅官方文档:使用volumes顶级元素,您可以定义要在该docker-compose.yml.

另一方面,使用volumes服务属性,您可以指定在该容器中安装卷的位置,引用顶级元素中定义的命名卷。

您(可以)将卷的定义留空的原因是,为省略的详细信息分配的默认值在大多数情况下已经是您想要的。因此,仅指定卷的名称就足以使用默认配置创建它们。查看volumes顶级元素文档以了解还有哪些其他可用配置。

要了解有关卷的更多信息,请参阅文档中的此页面。