为了账号安全,请及时绑定邮箱和手机立即绑定

docker 无法使用邮递员从 docker 公开正确的端口 9090

docker 无法使用邮递员从 docker 公开正确的端口 9090

斯蒂芬大帝 2023-06-20 17:38:21
我的 server.py 有这段代码:@app.route('/health', methods = ['POST'])def check():    if request.method == 'POST':        return jsonify({'response':'OK!'})if __name__ == '__main__':    app.run(debug=True, port=9090)我的 dockerfile 在此有 EXPOSE:FROM py_ubuntu_flask_numpy_torch_jysan_voiceRUN mkdir -p ./voice_flask/dWORKDIR /voice_flask/dCOPY . /voice_flask/dEXPOSE 9090CMD ["python", "server.py"]我使用此 cmd 构建并运行我的图像:docker build -t my_app .docker run my_app它启动并收听: * Serving Flask app "server" (lazy loading) * Running on http://127.0.0.1:9090/ 但在邮递员中我什至无法检查健康功能:"could not get response"我怀疑 expose 9090 在 0.0.0.0 上有效?不在 127.0.0.1 上?如何修复它并测试我的应用程序?
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

EXPOSE本身不暴露任何端口。

如果你像这样运行你的容器:

docker run -P my_app

Docker 会将容器内的端口 9090 绑定到主机上的随机端口。

我怀疑你真正想要的是

docker run -p 9090:9090 my_app

这会将容器的 9090 端口绑定到主机上的 9090 端口。

此外,您的应用正在侦听 127.0.0.1,这意味着它拒绝来自容器外部的连接。

你需要的是

if __name__ == '__main__':
   app.run(debug=True, port=9090, host='0.0.0.0')


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信