![](/img/trans.png)
[英]Cannot access remotely MySql docker image on AWS EC2 instance
[英]Docker image access on aws ec2
我创建了 Flask 应用程序的 Docker 映像,该应用程序在 EC2 服务器上运行以下代码:
docker build -t app .
docker run -80:80 app .
结果似乎在服务器返回时起作用:
Serving Flask app "app" (lazy loading)
Environment: production
Debug mode: off
Running on http://127.0.0.1:5000/
如何在 EC2 服务器上访问http://127.0.0.1:5000/
方向,或者更改方向以查看它?
Docker 映像也应该在端口 80 上运行,但我看不出这个端口在进程中扮演什么角色。
我正在关注“ 将机器学习模型部署到云的简单方法”。
更新您的 docker 运行,或添加另一个端口映射,即
docker run -p 5000:5000 app.
或者
docker run -p 80:80 -p 5000:5000 app.
首先 python 服务器必须在 0.0.0.0 上运行。 否则,flask 服务器将不接受来自外部的任何连接。
如果您将它部署在 EC2 实例上,您可能需要一个弹性负载平衡来公开或一个公共 IP。 使用 ELB,您可以从 80 到端口 5000 显示 flask 应用程序。
并且永远记得设置 -p 5000:5000。 如果没有,你永远不会暴露那个端口。
警告:如果您使用公共 IP,请正确设置安全组、端口和 IP 地址以及 CIDR。 否则,您的机器将被黑客入侵。
我发现我必须将端口和主机添加到我的 flask 应用程序中。 替换这个:
if __name__ == '__main__':
app.run()
这样:
if __name__ == '__main__':
app.run(host= '0.0.0.0',port=80)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.