当我运行docker-compose up -d
时,docker始终使用包含docker-compose.yml
文件的文件夹名称创建容器名称和网络名称。
我可以按如下方式指定容器名称:
nginx:
container_name: nginx
build:
context: .
dockerfile: .docker/docker-nginx.dockerfile
但是如何指定网络名称以使其不添加文件夹名称?
感谢。
答案 0 :(得分:1)
你必须放置一个" .env"文件位于docker-compose项目目录的根目录中。
COMPOSE_PROJECT_NAME=MyFancyProject
有关详细信息,请参阅Docker文档:https://docs.docker.com/compose/reference/envvars/
如果您不使用docker-compose,则可以使用" -p
"在docker run
上设置此参数。
答案 1 :(得分:0)
Docker在当前文件夹名称前添加使用docker compose文件创建的所有组件名称。
例如:如果包含docker-compose.yml文件的当前文件夹名称为test,则所有卷,网络和容器名称都将附加test。为了解决该问题,人们早先提出了在docker-compose命令中使用 -p 标志的想法,但是该解决方案并不是最可行的解决方案,因为仅在-p属性之后需要一个项目名称。然后,将项目名称附加到使用docker compose文件创建的所有组件中。
上述问题的解决方案使用的是 name 属性,如下所示。
volumes:
data:
driver: local
name: mongodata
networks:
internal-network:
driver: bridge
name: frontend-network
此卷可以在服务部分中称为
services:
mongo-database:
volumes:
- data:/data/db
networks:
- internal-network
上面的 name 属性将阻止docker-compose放置文件夹名称。
注意:对于容器名称,可以使用属性 container_name
services:
mongo-database:
container_name: mongo