Docker是一个用于开发,发布和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
1、docker安装
一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
2、docker 部署Flask 服务
创建文件夹docker_test,执行命令:touch docker_test
进入文件夹
cd docker_test
在该目录文件夹下,创建项目文件夹 py-flask-ml-score-api
mkdir py-flask-ml-score-api
(base) [root@HK-AI docker_test]# tree -a
.
├── py-flask-ml-score-api
│ ├── api.py
│ ├── Dockerfile
│ └── requirements.txt
└── run.sh
1 directory, 4 files
(base) [root@HK-AI docker_test]#
py-flask-ml-score-api 放置三个文件
api.py
Dockerfile
requirements.txt
api.py 内容如下:
from flask import Flask, jsonify, make_response, request
app = Flask(__name__)
@app.route('/score', methods=['POST'])
def score():
features = request.json['X']
return make_response(jsonify({'score': features}))
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Dockerfile 内容如下:
FROM python:3.6-slim
WORKDIR /usr/src/app
COPY . .
RUN pip install pipenv
RUN pipenv install
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 5000
CMD ["pipenv", "run", "python", "api.py"]
requirements.txt 编写依赖包,内容如下:
Flask
3、构建docker 镜像
docker build --tag test1 py-flask-ml-score-api
4、运行docker镜像
docker run --rm --name test-api -p 5000:5000 -d test1
5、查看Flask服务是否启动成功
docker ps -a
6、查看docker 全部镜像
docker images
7、发送post请求,验证flask 服务
curl http://172.16.1.224:5000/score -X POST -H "Content-type:application/json" -d '{"X": [1, 2]}'
返回结果:{“score”:[1,2]}