如何访问Docker容器中部署TensorFlow模型的Flask API?
解决Flask API Docker容器无法访问的问题
检查端口映射配置
这是最常见的故障点。运行容器时必须显式将容器内的5000端口映射到宿主机端口,执行命令示例:
docker run -p 8000:5000 <你的镜像名称>
完成映射后,访问宿主机的http://localhost:8000(或宿主机IP+8000端口),而非容器内部的172.17.0.3:5000地址。
确认Flask启动参数
确保Flask应用启动时绑定0.0.0.0,代码需包含:
if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
即便终端显示Running on all addresses (0.0.0.0),也建议核对代码,避免启动命令覆盖配置。
排查防火墙/安全组规则
- 本地机器:关闭防火墙,或添加允许映射端口(如8000)的入站规则。
- 云服务器:检查安全组配置,确保对应端口已开放外部访问权限。
验证容器运行状态
执行docker ps查看容器状态,确认容器处于Up状态,端口映射列显示类似0.0.0.0:8000->5000/tcp的内容。若容器未正常运行,用docker logs <容器ID>查看错误日志定位问题。
测试容器内部连通性
若以上步骤无问题,进入容器内部测试服务可用性:
docker exec -it <容器ID> curl http://127.0.0.1:5000
若能正常返回响应,说明容器内服务正常,故障出在外部网络配置;若无法返回,排查Flask应用启动逻辑。
内容的提问来源于stack exchange,提问作者GS343597
相关产品推荐
相关产品推荐

