将 Docker 中的 Flask 应用程序公开到互联网

Rav*_*avi 2 python flask docker

我有一个 Python Flask 应用程序在默认端口 500 的 Docker 容器内运行。它位于 Ubuntu 服务器上。

我可以通过本地主机访问 Flask 应用程序,如下所示:

URL = "http://127.0.0.1:5000/get_image"
Run Code Online (Sandbox Code Playgroud)

想知道如何将此服务器暴露给外界。我想使用服务器IP来公开服务,以便其他人也可以访问它。

有人可以指导如何将此摘要公开到互联网吗?谢谢

big*_*nty 7

您应该首先将“0.0.0.0”作为烧瓶的主机。接下来您需要公开您的 docker 端口。

烧瓶文件:

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

class HelloWorld(Resource):
    def get(self):
        return {'hello': 'world'}

api.add_resource(HelloWorld, '/get_image')

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM python:3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]
Run Code Online (Sandbox Code Playgroud)

构建docker镜像

docker build -t docker_flask:latest .

运行图像

docker run -d -p 5000:5000 docker_flask:latest

检查本地一切正常后,使用docker push命令将映像推送到 docker 注册表。然后将镜像部署到kubernetes或者VM上