在使用 Docker Compose 时,容器名称自动添加前缀的行为是由 Docker Compose 的默认命名规则决定的。Docker Compose 会根据项目名称自动为容器、网络、卷等资源添加前缀,以避免不同项目之间的资源冲突。
Docker Compose 默认会将项目名称作为前缀添加到容器名称中。项目名称通常是 docker-compose.yml 文件所在目录的名称,但也可以通过 -p 或 --project-name 选项手动指定。
例如,假设你的项目目录名为 myproject,并且你在 docker-compose.yml 文件中定义了一个服务 web,那么启动容器时,Docker Compose 会自动将容器命名为 myproject_web_1。
如果你不希望 Docker Compose 自动添加前缀,可以通过在 docker-compose.yml 文件中使用 container_name 字段来指定容器的名称。例如:
version: '3'
services:
web:
image: nginx
container_name: my_custom_container_name
在这种情况下,容器名称将直接使用 my_custom_container_name,而不会添加项目名称作为前缀。
如果你希望保留自动添加前缀的行为,但想修改项目名称,可以通过以下方式:
使用 -p 或 --project-name 选项指定项目名称:
docker-compose -p my_custom_project_name up
在 .env 文件中设置 COMPOSE_PROJECT_NAME 环境变量:
COMPOSE_PROJECT_NAME=my_custom_project_name
container_name 字段自定义容器名称,避免自动添加前缀。-p 选项或 .env 文件修改项目名称。这种行为是为了确保不同项目之间的资源不会发生冲突,尤其是在多个项目共享同一 Docker 环境时。