FastAPI部署Docker后无法访问URL问题求助
问题排查与解决方案
核心问题:docker-compose run 不默认映射端口
docker-compose run 命令启动容器时,不会自动加载docker-compose.yml中定义的ports端口映射,它的设计定位是一次性运行临时命令,而非启动长期对外提供服务的容器,这是导致浏览器无法访问的直接原因。
解决方案
方案1:改用 docker-compose up 启动服务
修改你的run.sh脚本为:
docker-compose build docker-compose up immo
该命令会正常启用ports配置,将宿主机8000端口映射到容器内的8000端口,执行后即可访问http://127.0.0.1:8000/。
如果需要后台运行服务,添加-d参数:
docker-compose up -d immo
方案2:保留run.sh但添加端口映射参数
若必须使用docker-compose run,需加上--service-ports参数强制启用ports配置:
docker-compose build docker-compose run --service-ports immo
额外检查项
- 确认容器内服务监听地址正确:你Dockerfile中的CMD已经设置
--host 0.0.0.0,确保了容器内服务可以被外部访问,这部分配置无问题。 - 检查宿主机端口占用:使用
lsof -i :8000(Linux/macOS)或netstat -ano | findstr :8000(Windows)查看8000端口是否被其他进程占用,若占用则修改docker-compose.yml中的端口映射(例如改为"8001:8000")。
内容的提问来源于stack exchange,提问作者abdellah
相关产品推荐
相关产品推荐

