在docker compose中将文件夹名称前缀为容器名称的目的是什么

时间:2020-10-15 10:14:30

标签: docker docker-compose

我的docker compose文件位于/ documents文件夹中,当我使用docker-compose up时,它将文件夹名称附加到服务名称(myappv1)。

documents_myappv1_1

这是什么目的? 为什么不能只是myappv1_1

2 个答案:

答案 0 :(得分:1)

Docker Compose使用默认命名方案<project>_<service>_<index> 隔离环境,因此您可以在一台主机上运行同一compose-file的多个实例。 Docker Compose Docs中对此进行了说明。

但是您可以覆盖容器名称,如Compose docs

中所述
container_name: my-web-container

答案 1 :(得分:1)

Docker Compose使用项目名称让用户部署multiple isolated environments on a single host。项目名称将默认使用包含您的docker-compose.yml的文件夹的名称。

您可以通过以下方式更改容器的命名行为:

  • 使用诸如-p之类的docker-compose -p project_name up选项,这将导致容器被命名为project_name_myappv1_1
  • 使用container_name选项来指定自定义容器名称,即使在不同的部署上,该名称也将保持不变

per doc

Compose使用项目名称将环境彼此隔离。 您可以在多个不同的上下文中使用该项目名称:

  • 在开发主机上,用于创建单个环境的多个副本,例如,当您想为项目的每个功能分支运行稳定副本时
  • 在CI服务器上,为了防止内部版本相互干扰,您可以将项目名称设置为唯一的内部版本号
  • 在共享主机或开发主机上,以防止可能使用相同服务名称的不同项目相互干扰

默认项目名称是项目目录的基本名称。您可以使用-p命令行选项或COMPOSE_PROJECT_NAME环境变量来设置自定义项目名称。