aws ec2上的Docker镜像访问



我创建了一个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上运行。否则,烧瓶服务器将不接受任何来自外部的连接。

如果您将其部署在EC2实例上,您可能需要一个弹性负载平衡来公开或一个公共IP。使用ELB,您可以显示从80到5000端口的烧瓶应用程序。

永远记得设定-p 5000:5000。如果没有,你永远不会暴露那个端口。

警告:如果您使用公共IP,请使用CIDR正确设置您的安全组、端口和IP地址。否则,您的机器将被黑客入侵。

我发现我必须在烧瓶应用程序中添加端口和主机。替换此:

if __name__ == '__main__':
app.run()

通过这个:

if __name__ == '__main__':
app.run(host= '0.0.0.0',port=80)

最新更新