Docker compose 不会将项目名称添加到卷中

ccl*_*oyd 6 docker docker-compose

有没有办法让 docker-compose 使用我在 yaml 中定义的确切卷名称,而不是在前面添加projectname_

前任:

volumes:
    postgres-data:
Run Code Online (Sandbox Code Playgroud)

将此卷显示为postgres-data而不是projectname_postgres-data

mul*_*g0r 4

是的,您可以使用命名卷

version: '3.6'

services:
    your-service:
        image: ...
        ...
        volumes:
          - postgres-data:/anyfolder
        ...

volumes:
    postgres-data:
        name: <your volume name>
        external: false
Run Code Online (Sandbox Code Playgroud)

当您检查时会出现该名称:

docker volume ls
Run Code Online (Sandbox Code Playgroud)

内容存储在: 中/var/lib/docker/volumes/<your volume name>/_data,因此,您可以将其用作卷类型volume,也可以使用类型bind

Docker 卷也可以在 cli 中创建,而不是使用以下命令组成文件:

docker volume create --name <your volume name>
Run Code Online (Sandbox Code Playgroud)

  • 例如,如果您使用 Docker compose 文件版本 3.6 和 docker-compose 版本 1.22,则名称有效。如果您使用旧版本,则不起作用。请更新您的 docker compose (3认同)