在使用 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 环境时。