You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指定完整路径为项目名时docker-compose无法将容器接入网络怎么办

问题原因
  • 核心误用了docker compose的-p/--project-name参数:该参数的作用是自定义项目名称,用于唯一标识本次部署关联的容器、网络、存储卷等资源,仅支持传入由小写字母、数字、短横线组成的字符串,不支持传入文件路径作为值。
  • 你将绝对路径传入-p参数后,Docker Compose会自动生成包含路径斜杠的网络名称,而Docker daemon不支持使用带有多级路径格式的网络名,因此出现容器无法连接到对应网络的报错。
  • 额外冲突点:你的compose配置中给Mongo服务固定了container_name: server,如果之前部署过同名容器没有清理,也会引发部署冲突。
解决方法
  1. 先清理旧的冲突资源:
# 删除旧的同名server容器
docker rm -f server
# 清理之前错误生成的非法格式网络
docker network rm /users/subhayanbhattacharya/studies/hobbyprojects/mongo-book-store-fastapi_default
  1. 修改执行命令,-p后传入合法的项目名称即可,不需要替换为路径:
docker-compose --project-directory /Users/subhayanbhattacharya/Studies/HobbyProjects/mongo-book-store-fastapi -f /Users/subhayanbhattacharya/Studies/HobbyProjects/mongo-book-store-fastapi/docker-compose.yml -p test up --build -d web_app
  1. 如果你不需要自定义项目名,也可以直接去掉-p参数,Docker Compose会默认使用项目目录的名称mongo-book-store-fastapi作为项目名,也可以正常运行。

内容的提问来源于stack exchange,提问作者Subhayan Bhattacharya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:09:02