Docker容器内运行的Django服务无法正常访问问题求助
解决步骤
- 检查Django项目
settings.py中的ALLOWED_HOSTS配置,添加127.0.0.1、localhost到配置项中,测试阶段可以临时设置为ALLOWED_HOSTS = ['*']确认是否是该配置导致的访问拦截。 - 验证端口映射是否正常生效:执行
docker ps命令,查看servercon3容器的端口列是否显示为0.0.0.0:8000->8000/tcp。如果端口未正常映射,检查本地8000端口是否被其他服务占用,可执行lsof -i:8000(Linux/Mac)或netstat -ano | findstr 8000(Windows)查询端口占用情况。 - 验证容器内服务运行状态:执行
docker exec -it servercon3 curl http://127.0.0.1:8000/userDetails/,如果容器内可以正常返回结果,说明问题出在宿主机到容器的访问链路;如果容器内也无法访问,检查容器内依赖是否完整,对比本地Python环境和容器内Python环境的安装包差异,确认req.txt是否遗漏了必要依赖。 - 检查
settings.py中DEBUG配置项:如果DEBUG=False,Django的runserver不会自动提供静态文件服务,需要先执行python manage.py collectstatic收集静态资源,或者临时开启DEBUG=True验证页面是否可以正常加载。 - 检查本地防火墙规则,确认8000端口未被防火墙拦截。
内容的提问来源于stack exchange,提问作者Charitha Reddy
相关产品推荐
相关产品推荐

