如何在Docker部署的Django中接收Ngrok连接?解决连接拒绝问题
解决Ngrok连接Django容器被拒绝的问题
问题根源
Ngrok容器内配置的localhost:8000指向的是Ngrok自身容器,而非你的Django容器,导致连接请求被拒绝,触发ERR_NGROK_8012错误。
修复步骤
修改ngrok.yml配置
将隧道的addr值从localhost:8000替换为Django服务的名称django:8000(Docker Compose中服务名可作为内部域名直接访问):version: 2 authtoken: *** tunnels: django: proto: http addr: django:8000 inspect: true重启服务
执行以下命令重启Docker Compose服务,让新配置生效:docker-compose down && docker-compose up -d
额外注意事项
- 确保Django服务在容器内监听的是
0.0.0.0:8000(比如启动命令用python manage.py runserver 0.0.0.0:8000),如果只绑定127.0.0.1,其他容器无法访问该端口。 depends_on仅保证启动顺序,不确保Django服务完全就绪。如果Django启动较慢,可添加健康检查或延迟启动Ngrok,避免短暂的连接失败。
内容的提问来源于stack exchange,提问作者Alberto Sanmartin Martinez
相关产品推荐
相关产品推荐

