前后端项目部署-1, flask,只有flask,一个最简单的flask项目部署到Docker的过程,

####

第一步:

首先准备一个简单的flask项目,

只需要一个main函数就可以了,随便写一个接口,

from flask import Flask

app = Flask(__name__)


@app.route('/')
def alldata():
    return '<h1>Hello World!</h1>'


#
if __name__ == "__main__":
    """初始化,debug=True"""
    app.run(host='0.0.0.0', port=9876, debug=True)

###

第二步:

生成requirement.txt

Flask网页程序中需要依赖一些Python库,为了方便在docker上进行安装,所以将需要的库整合到requirement.txt中。

在终端中进入到项目目录下,执行下面的目录,生成requirement.txt

pip freeze > requirements.txt,里面只有一个flask,

Flask==2.0.1

###

第三步:

创建Dockerfile

什么是Dockerfile?

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),有了 Dockerfile,就可以创建我们所需要的镜像

FROM python:3.8-alpine3.13

WORKDIR /app

ADD . /app

RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

EXPOSE 9876

CMD ["python", "app.py"]

FROM python:3.8-alpine3.13

FROM命令指定将在其上构建新镜像的基础容器镜像。 这样就可以从一个现有的镜像开始,添加或改变一些东西,并最终得到一个派生的镜像。 镜像由名称和标签来标记,之间用冒号分隔。 该标签用作版本控制机制,允许容器镜像提供多个版本。 现在选择的镜像的名称是python,它是Python的官方Docker镜像。 该镜像的标签允许指定解释器版本和基础操作系统。 3.6-alpine标签是安装在Alpine Linux上的Python 3.6解释器。 由于其体积小,Alpine Linux发行版比起更常见的发行版(例如Ubuntu)使用更广泛。 可以在Python镜像库中查看可用的Python镜像标签。

Python镜像库:https://hub.docker.com/r/library/python/tags/

这里WORKDIR为容器内设置的工作目录,RUN CMD ENTRYPOINT都是在这个目录下进行的

ADD . /app将Dockerfile所在目录下的所有文件拷贝到容器内的/app目录下(也可用COPY)

RUN命令执行的为安装项目依赖

EXPOSE将容器内的端口暴露出去我

CMD为容器启动时容器内执行的操作(目前还没分清与ENTRYPOINT使用哪个更好)

####

第四步,构建,

上面准备好docker构建的文件后

开始构建docker image

首先切换到Dockerfile所在目录

执行

(venv) passwordis123@ubuntu:~/PycharmProjects/tests/test_flask/test_flask_docker$ docker build -f Dockerfile -t flask_docker_test .

####

第五步运行,

待镜像构建完成后,启动项目镜像test_flask_docker

执行

(venv) passwordis123@ubuntu:~/PycharmProjects/tests/test_flask/test_flask_docker$ docker run -p 9876:9876 flask_docker_test

提醒:

1、这里的172.17.0.2是docker的这个容器ip(实际上就是咱们本机/服务器的内网IP)

2、建议在flask程序中的host设置为0.0.0.0,不然可能出现无法访问的情况

 则项目通过docker启动了

在浏览器输入http://localhost:9876/

##### 

把这个容器导出,然后放到centos上面去,

第一步,导出容器,

docker save -o flask_docker_test.tar flask_docker_test

第二步,把这个tar上传到centos,

使用rz命令,

第三步,先在centos安装一下docker,

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

第四步,在centos导出容器,

docker load < flask_docker_test.tar

第五步,运行容器,

docker run -p 9876:9876 test_flask_docker:v1

成功运行这个docker,所以是不是非常的方便啊,哈哈哈哈哈,

#####

原文地址:https://www.cnblogs.com/andy0816/p/15367843.html