Docker网络别名解析失败:前端容器无法访问User服务Flask接口
前端容器无法通过别名访问Flask服务的问题排查与解决
核心问题排查及修复方案
1. Flask服务绑定地址限制
Flask默认启动时仅监听127.0.0.1,这意味着只有容器内部的本地请求能访问服务,其他容器无法通过别名连接。必须修改绑定地址为容器的所有网络接口:
if __name__ == "__main__": app.run(debug=True, host='0.0.0.0')
2. 端口不匹配
前端代码请求的是http://user:5001/,但Flask默认运行在5000端口,端口不一致会直接导致连接失败,二选一修改即可:
- 修改前端请求端口:
response = requests.get('http://user:5000/') - 修改Flask启动端口:
if __name__ == "__main__": app.run(debug=True, host='0.0.0.0', port=5001)
3. 网络连通性验证
虽然当前frontend和user都已加入user-service内部网络,但可以通过以下命令确认网络正常:
- 查看网络是否存在:
docker network ls,确认user-service在列表中 - 检查容器网络归属:
docker inspect frontend和docker inspect user,查看Networks字段是否包含user-service - 进入前端容器测试解析:
docker exec -it frontend ping user,能ping通则网络解析正常,问题出在服务配置;ping不通则需检查网络连接配置
内容的提问来源于stack exchange,提问作者LaurensDW
相关产品推荐
相关产品推荐

