示例:使用Docker部署一个简单的模型服务
步骤1: 准备模型和代码
假设我们有一个简单的Python模型服务,用于对输入的文本进行情感分析,返回积极或消极的情感预测。
- 创建一个名为
app
的文件夹,并在其中包含以下文件:requirements.txt
:包含所需的Python依赖项。model.py
:包含模型定义和预测逻辑。app.py
:用于创建API服务的Python Flask应用。
步骤2: 编写Dockerfile
在 app
文件夹中创建一个 Dockerfile
,指定如何构建Docker镜像。
# 使用Python官方镜像作为基础镜像
FROM python:3.8-slim
# 设置工作目录
WORKDIR /app
# 将本地的requirements.txt拷贝到镜像中的/app文件夹
COPY requirements.txt requirements.txt
# 安装Python依赖项
RUN pip install -r requirements.txt
# 将当前目录中的所有文件拷贝到镜像的/app文件夹
COPY . .
# 声明服务运行时的端口号
EXPOSE 5000
# 定义Docker容器启动时运行的命令
CMD ["python", "app.py"]
步骤3: 编写应用程序代码
在 app.py
中编写Flask应用程序,创建API服务并加载模型,处理输入数据并返回预测结果。
from flask import Flask, request, jsonify
from model import predict_sentiment
app = Flask(__name__)
# 定义API路由
@app.route('/predict', methods=['POST'])
def predict():
text = request.json['text']
prediction = predict_sentiment(text)
return jsonify({'sentiment': prediction})
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
在 model.py
中编写模型的加载和预测逻辑,例如使用简单的逻辑进行情感分析。
步骤4: 构建Docker镜像
在终端中进入 app
文件夹,并执行以下命令构建Docker镜像:
docker build -t sentiment-analysis-app .
这将根据 Dockerfile
中的指令构建一个名为 sentiment-analysis-app
的Docker镜像。
步骤5: 运行Docker容器
运行构建好的Docker镜像作为一个容器,监听在本地的端口上:
docker run -p 5000:5000 sentiment-analysis-app
现在,您的模型服务已经作为一个Docker容器运行,并可以通过访问 http://localhost:5000/predict
进行测试和调用。例如,可以通过发送POST请求来进行情感分析预测。