这段 Docker 配置代表什么意思?


version: '2'

volumes:
  postgres_data: {}
  postgres_backup: {}

services:
  postgres:
    build: ./compose/postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - postgres_backup:/backups
    env_file: .env

这里 postgres_data: {} 代表什么意思?

  • 5 条回复 | 2 人参与
  • mihello # 1

    很久没看docker,1.12新版本多出了services功能。postgres_data这个应该是自定义的volume卷。下面一段,定义prosgres services。具体我也要查查docker的更新。 是官网的example吗?

  • 不是的,我查的文档是表示自定义命名卷,但是不知道后面那个{}什么意思。这是 django cooliecutter 上的一段配置。 @mihello

  • mihello # 3

    Here’s an example of a two-service setup where a database’s data directory is shared with another service as a volume so that it can be periodically backed up:

    version: "3"
    
    services:
      db:
        image: db
        volumes:
          - data-volume:/var/lib/db
      backup:
        image: backup-service
        volumes:
          - data-volume:/var/lib/backup/data
    
    volumes:
      data-volume:
    

    https://docs.docker.com/compose/compose-file/#volume-configuration-reference 猜测

    volumes:
      postgres_data: {}
      postgres_backup: {}
    

    应该是定义了一个可供其他服务(services)引用的数据卷。

    version: '2'
    
    services:
      db:
        image: postgres
        volumes:
          - data:/var/lib/postgresql/data
    
    volumes:
      data:
        external: true
    

    You can also specify the name of the volume separately from the name used to refer to it within the Compose file:

    volumes: data: external: name: actual-name-of-volume ```

    还可以指定卷在compose文件里面的引用名称。

    所以基本上就是像变量那样可以在compose文件的其他services里面被使用?

  • 但是官方文档的例子并没有 {} 这个符号。@mihello

  • mihello # 5

    这{}真没看到。:(

添加一条新回复
登录 或者 注册 后发表回复