Docker Compose部署Flask+MongoDB时遭遇连接超时错误求助
解决连接超时问题的步骤
1. 修复请求中的错误IP地址
你的POST请求里使用了无效的回环地址127.0.0.0,正确的本地回环地址应为127.0.0.1或localhost。修改后的请求代码:
import requests requests.post('http://127.0.0.1:8000/this', headers={'Content-Type': 'application/json'}, json={'a': 1})
2. 验证容器运行状态
执行命令检查所有服务是否正常启动:
docker-compose ps
确保web、mongodb、redis三个服务的状态均为Up。若web服务未启动,查看日志排查问题:
docker-compose logs web
3. 确认端口映射有效性
你的docker-compose.yml已配置主机8000端口映射到容器5000端口(8000:5000),可通过以下命令验证端口是否被监听:
# macOS/Linux lsof -i :8000 # Windows netstat -ano | findstr :8000
若端口未被监听,重启docker-compose服务:
docker-compose down && docker-compose up -d
4. 检查容器内部服务响应性
进入web容器内部,测试Flask服务是否正常运行:
docker-compose exec web curl http://localhost:5000/this -X POST -H "Content-Type: application/json" -d '{"a":1}'
如果能正常执行,说明容器内部服务正常,问题出在外部访问配置上。
5. 优化Flask接口返回值(可选)
当前/this接口无返回响应,建议添加返回值方便调试:
@app.route('/this', methods=['POST']) def this(): db = g.conn.warehouse clx = db.this if request.method == 'POST': data = request.get_json() print(data) clx.insert_one(data) return {'status': 'success', 'data': data}, 201 # 添加响应内容
内容的提问来源于stack exchange,提问作者CPak
相关产品推荐
相关产品推荐

