项目:ML-web-app
简介:
- 采用pytorch做神经网络推理框架
- 采用flask做api
- 采用dockerfile构建docker
前面两部分就不讲解了。这里主要对例子docker构建部分进行说明
1. 构建镜像
git clone https://github.com/imadelh/ML-web-app.git
cd ML-web-app
构建镜像。镜像的名字:flaskml;. 表示上下文路径
sudo docker build -t flaskml .
2. Dockerfile解析
FROM ubuntu:16.04 # 1. 基于ubuntu16.04
RUN apt-get update \ # 2. 安装python3和pip3
&& apt-get install -yq --no-install-recommends \
python3 \
python3-pip
RUN pip3 install --upgrade pip==9.0.3 \
&& pip3 install setuptools
# for flask web server
EXPOSE 8081 # 3. 声明端口,在-P随机映射时有用
# set working directory
ADD . /app # 4. 复制上下文路径下所有到镜像中的/app目录
WORKDIR /app # 5. 设定工作目录为/app
# install required libraries
RUN pip3 install -r requirements.txt -i https://pypi.douban.com/simple # 6. 安装pytorch等依赖,-i可以指定国内源头
# This is the runtime command for the container
CMD python3 app.py # 7. docker run时执行的命令
整个流程是:
- 基于ubuntu16.04
- 安装python3和pip3
- 声明端口,在-P随机映射时有用
- 复制上下文路径下所有到镜像中的/app目录
- 设定工作目录为/app
- 安装pytorch等依赖,-i可以指定国内源头
- docker run时执行的命令
镜像安装好了之后,可以通过docker images
查看,我这里镜像名为mlapp
注意: 这里的
CMD python3 app.py
和ADD拷贝的目录是有问题的。他使用的不是镜像中的app.py是后面主机挂载过去的app.py
3. 启容器
sudo docker run -i -t --rm -p 8888:8888 -v /home/data/CM/test/dockerfile/ML-web-app/app:/app flaskml
-v:挂载目录,<主机目录>:<镜像目录>,主机中的目录可以被镜像访问