繁体   English   中英

Docker 在 aws ec2 上的图像访问

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM