泊坞窗如何将泊坞窗中的卷名映射到系统上的卷

时间:2020-07-25 20:06:02

标签: docker docker-compose

我正在将tvial docker邮件服务器从一个系统迁移到另一个系统。我在一段时间前进行了设置,并模糊地记住了步骤,但不是每个细节。我将邮件数据和邮件状态卷复制到了新系统,但是当我在新系统上运行docker时感到困惑。旧系统在docker compose中显示了这一点:

    - maildata:/var/mail
    - mailstate:/var/mail-state
volumes:
  maildata:
    driver: local
  mailstate:
    driver: local

但是这些卷具有不同的名称:

$ sudo docker volume ls
DRIVER              VOLUME NAME
local               tvial_docker-mailserver_maildata
local               tvial_docker-mailserver_mailstate

如果我检查正在运行的实例,则表明它已绑定到正确的卷。

如何在新系统上重现此内容?

编辑:

我在新系统上运行了docker容器,并且似乎使用类似的命名法构造了maillog容器:

Creating volume "tvial_docker-mailserver_maillogs" with local driver

因此,这不再是紧迫的问题,但是我查看了此容器的dockerfile,但看不到名称的来源。谁能告诉我?

1 个答案:

答案 0 :(得分:1)

资源以项目(部署)名称为前缀。
您可以在运行-p命令时使用docker-compose up标志来指定。如果未指定,则项目名称默认为docker-compose.yaml文件所属的目录的名称。

此处的官方文档:https://docs.docker.com/compose/reference/envvars/#compose_project_name。问题的相关摘录:

COMPOSE_PROJECT_NAME:
设置项目名称。启动时,此值与服务名称一起添加到容器中。例如,如果您的项目名称为myapp,并且其中包括两个服务db和web,则Compose分别启动名为myapp_db_1和myapp_web_1的容器。