上一期我们讲到了在自己的本机上运行我们的模型及网页演示,这期我们将如何将我们做好的application部署到别的地方。
我们用到的工具叫 Docker
一、docker介绍
Docker 是一种使用容易部署和运行应用程序的工序。容器使得开发人员可以将应用系统和所需的所有部分(如库和其他依赖项)打包在一起,并将其全部打包为一个软件包。这样,借助容器,开发人员可以放心将该应用程序运行在任何其他linux机器上,而不用管该机器的自定义设置。
某种程度上,Docker有点像虚拟机。但是,与虚拟机不通,Docker无需创建整个虚拟操作系统,而是允许应用系统使用与其所运行的系统相同的Linux内核。这可以显著提高性能并减少应用系统的大小。
二、写 Dockerfile

在之前的工作目录里写Dockerfile, 注意这个文件的命名就叫 Dockerfile
#选择系统 FROM ubuntu #维护人员的联系方式 MAINTAINER rl2987@columbia.edu LABEL version="1.0" #输出的端口 EXPOSE 8080 #给docker中文环境 ENV LANG C.UTF-8 #更新ubuntu系统,下载相关的dependency RUN apt-get update RUN apt-get install libsm6 libxrender1 libxext-dev gcc -y ##下载Anaconda3 python 环境安装包 放置在程序目录 url地址https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh #docker工作目录 WORKDIR /keras-docker #将当前目录下的全部内容放入docker工作目录 ADD . /keras-docker #安装anaconda RUN cd /keras-docker && sh -c '/bin/echo -e "nyesnnyes" | sh Anaconda3-2019.03-Linux-x86_64.sh' #下载python及需要的包 RUN echo -e "ny" | /root/anaconda3/bin/conda install python=3.6.7 RUN echo -e "ny" | /root/anaconda3/bin/conda install -c conda-forge scipy numpy==1.17.2 easydict cython h5py pandas requests beautifulsoup4 RUN echo -e "ny" | /root/anaconda3/bin/conda install -c conda-forge scikit-learn cheroot mahotas joblib RUN /root/anaconda3/bin/pip install tensorflow==1.13.2 keras==2.2.5 RUN /root/anaconda3/bin/pip install web.py==0.40.dev1 opencv-contrib-python==4.0.0.21 pillow==6.2.0 #在docker中删除anaconda的安装文件 RUN rm Anaconda3-2019.03-Linux-x86_64.sh
三、build image
这部分可以先看视频
build docker imagehttps://www.zhihu.com/video/1181404051319881728
1、build docker

docker build -t keras-docker:1.0 .
注意最后的那个点是精髓,表示在当前文件夹创建docker, 用当前文件夹内的文件
2、save image to tar file
docker save -o keras-docker_1-0.tar keras_docker:1.0
注意这一步很慢,我等了两分多钟,请耐心等待
四、如何使用
同样先看视频
run docker imagehttps://www.zhihu.com/video/1181404182735802368
1、打开tar文件

docker run -p 8080:8080 keras_docker:1.0 /root/anaconda3/bin/python app.py
这个可是前台运行,可以看到部署的情况
也可以后台运行
docker run -d -p 8080:8080 keras_docker:1.0 /root/anaconda3/bin/python app.py
然后在浏览器中打开
http://0.0.0.0:8080/kind
就可以使用啦!
五、docker image 的下载地址
我已经上传到docker hub上,直接下载就好
docker pull rachelliu/keras_docker:1.0
结束了!
大声回答 爱不爱我!
附上期教程地址:
如何用web.py + docker来部署keras模型(改)
转自:https://zhuanlan.zhihu.com/p/93252460