docker容器部署flask单页面应用

 

本地安装docker,拉取centos镜像。

docker pull centos:7

 

本地文件结构:

/usr/local/var/tmp/docker_demo

.app

    ---requirements.txt

    ---run.py  

.Dockerfile

 

Dockerfile文件内容

FROM centos:7

RUN mkdir /flask_app
COPY ./app/ /flask_app
WORKDIR /flask_app

RUN yum -y upgrade && yum -y install python3

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

EXPOSE 80
ENTRYPOINT pytihon3 run.py runserver

 

文件逐行参数解析:

FROM centos:7 # centos7打底

RUN mkdir /flask_app  # 在容器内根目录创建一个文件夹
COPY ./app/ /flask_app  # 把本地环境中当前路径里面的app文件夹整个文件夹,拷贝到容器内新创建的文件夹下
WORKDIR /flask_app  # 容器内主程序文件夹

RUN yum -y upgrade && yum -y install python3  # 安装python3环境,必须要先升级yum,再安装python3,还有参数-y必须加上,
# 否则报错with none-zero code:1 RUN pip3 install
-r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 把应用环境依赖装上,带上国内pypi镜像源,可加速安装 EXPOSE 80 # 暴露80端口 ENTRYPOINT pytihon3 run.py runserver # 主程序启动命令。docker容器一旦创建,主程序就自动启动

 

run.py文件内容:

from flask import Flask

app = Flask(__name__)

@app.route("/index")
def index():
    return "Hello World!"


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

这里IP必须写成“0.0.0.0”

 

requirements.txt文件内容:

Flask==1.1.4

 

接下来开始执行命令:

执行命令之前,需要在/usr/local/var/tmp/docker_demo 这个路径下面,因为整个工程代码都在这里

docker build -t demo-dockerflask:v715-demo .
-t demo-dockerflask:v715-demo  自定义docker镜像名称、版本号
 . 指定Dockerfile文件路径

开始创建容器

docker run -d -p 80:80 --name demo-dockerflask-1 demo-dockerflask:v715-demo

-d  是后台运行该容器

-p 80:80 docker端口映射。主机端口:docker开放端口。主机端口80被Docker 开放的 80 端口映射上。“:80”docker开放端口,需要跟容器内部的应用端口一致。容器内部应用,不论是直接runserver的应用,还是配置了uwsgi的应用,还是配置了nginx的应用,都需要跟docker开放端口对应上,否则会在浏览器显示拒绝连接请求。

--name  demo-dockerflask-1   自定义docker容器的名字

demo-dockerflask:v715-demo   创建容器用的 镜像:该镜像的tag

 

本地浏览器输入url地址:

http://127.0.0.1/index

即可得到

Hello World!

输出结果

 

posted @ 2022-07-15 15:02  dream-子皿  阅读(182)  评论(0编辑  收藏  举报