0

Python项目(Flask网页)部署到Docker

其他示例:

前后端分离demo:

 

01 Flask网页项目

源码地址:https://gitee.com/lyc96/flash-visualization

python flask开发前后端分离 flask前后端分离部署_python

 

网页程序目录结构:

python flask开发前后端分离 flask前后端分离部署_docker_02

0

02 部署到docker

1.生成requirement.txt

 

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

pip freeze > requirements.txt

生成的requirement.txt如下:

python flask开发前后端分离 flask前后端分离部署_python flask开发前后端分离_03

 

删除多余的库

python flask开发前后端分离 flask前后端分离部署_docker_04

 

2.创建Dockerfile

python flask开发前后端分离 flask前后端分离部署_python_05

Flask网页程序放在Chenge文件夹中(前面生成的requirement.txt也在Chenge文件夹中),将Chenge文件夹放到0714文件夹中。

接着在0714文件夹下新建一个Dockerfile文件(和Chenge文件夹同级)。

什么是Dockerfile?

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

 

编辑DockerFile文件

#设置python环境镜像
FROM python:3.6

#代码添加到code文件夹,code不需要新建(docker执行时自建)
ADD Chenge/  /code/

# 设置code文件夹是工作目录
WORKDIR /code

# 安装相应的python库
RUN pip install -r requirements.txt

CMD ["python", "/code/main.py"]

Dockerfile里面命令大意是:

1、设置python版本

2、项目根目录Chenge文件夹下的所有文件复制到镜像中  /code目录下

3、docker工作目录

4、安装网页程序执行所需的库

5、执行python程序(网页程序主程序)

3.创建镜像chenge_image

 

提醒:将0714文件夹上传到服务器(如果docker安装远程服务器)

在终端中进入到0714文件夹中,先查看一下当前的镜像

# 切换到0714目录下
cd  /0714/

# 查看当前镜像
docker images

python flask开发前后端分离 flask前后端分离部署_Dockerfile_06

可以看到当前docker有两个镜像,现在我们开始创建网页程序镜像chenge_image

docker build -t chenge_image .

创建过程如下:

python flask开发前后端分离 flask前后端分离部署_python_07

可以看到正在拉取python3.6的环境,安装flask库等

再看一下docker的所有镜像

python flask开发前后端分离 flask前后端分离部署_python_08

可以看到咱们的镜像chenge_image就已经存在了

 

4.启动容器

docker run -it -p 5000:5000 --name=chenge chenge_image

-it:表示交互式终端的容器,非启动后立刻结束的容器

-p是端口映射,表示将docker的5000端口,映射到本机的5000端口

--name  给容器起个名称,这里命名为chenge

启动效果:

python flask开发前后端分离 flask前后端分离部署_docker_09

 

 

 

启动的界面和咱们本地启动没有差别!

提醒:

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

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

flask网页程序中host的设置

python flask开发前后端分离 flask前后端分离部署_python flask开发前后端分离_10

5.访问网页

 

访问链接:

我的本机ip为192.168.31.196,因此访问链接为:

http://192.168.31.196:5000/pie-nest

 

如果是远程服务器,用公网ip

python flask开发前后端分离 flask前后端分离部署_Dockerfile_11

 

可以看到网页访问成功,并且页面样式这些都没问题。这样我们的网页程序就成功部署docker。

 

 

 

作者:华王