拉取最新版的python313镜像
本文将介绍如何在 Docker 容器中部署 PaddleOCR 服务。首先,我们需要拉取 Python 3.13 的官方镜像作为基础环境。
bash
docker pull python:3.13.14
说明:这里使用 Python 3.13.14 版本,确保与后续 PaddlePaddle 的兼容性。如果网络较慢,可以配置 Docker 镜像加速。
启动容器
拉取镜像后,启动一个支持 GPU 的容器,并将容器内的 8080 端口映射到宿主机的 9100 端口。
bash
docker run -itd --name ceyyen-paddle --gpus all -p 9100:8080 python:3.13.14
参数解释:
-itd:以交互式终端后台运行容器--name ceyyen-paddle:为容器指定名称,便于后续管理--gpus all:将宿主机的所有 GPU 设备挂载到容器中(需已安装 NVIDIA Container Toolkit)-p 9100:8080:将宿主机的 9100 端口映射到容器的 8080 端口(PaddleOCR 服务将监听 8080)python:3.13.14:使用的镜像标签
启动后,可以使用 docker ps 查看容器是否正常运行。
安装依赖
进入容器后,依次安装系统依赖、PaddleOCR、PaddlePaddle GPU 版本以及服务化插件。
bash
# 首先安装glib库(OCR 依赖的图形库)
apt-get update && apt-get install -y \
libgl1 \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender1 \
&& rm -rf /var/lib/apt/lists/*
# 安装paddlex(包含 PaddleOCR)
pip install --no-cache-dir paddleocr paddlex -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装CUDA12.6 版本的PaddlePaddle(GPU 版本)
python3 -m pip install paddlepaddle-gpu==3.3.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
# 安装 服务化插件
paddlex --install serving
# 启动服务
paddlex --serve --pipeline OCR --host 0.0.0.0 --port 8080 --device gpu:0
详细说明:
- 系统依赖 :PaddleOCR 需要 OpenGL 等图形库来处理图像,因此先安装
libgl1等包。 - PaddleOCR 安装 :使用清华镜像源加速下载,
--no-cache-dir避免占用额外磁盘空间。 - PaddlePaddle GPU 版本 :这里选择 CUDA 12.6 对应的
paddlepaddle-gpu==3.3.0,确保能够利用 GPU 加速。 - 服务化插件 :
paddlex --install serving会安装 PaddleServing 相关组件,将 OCR 模型转换为可部署的服务。 - 启动服务 :
--pipeline OCR:指定使用 OCR 流水线--host 0.0.0.0:监听所有网络接口--port 8080:服务端口(与前面映射的端口一致)--device gpu:0:使用第一个 GPU 设备
验证服务 :启动后,可以在宿主机上使用 curl 测试服务是否正常:
bash
curl -X POST http://localhost:9100/ocr/prediction -H "Content-Type: application/json" -d '{"images": ["base64_encoded_image"]}'
常见问题:
- 如果 GPU 无法识别,请检查宿主机 NVIDIA 驱动和 Docker 的
--gpus支持。 - 端口冲突时,可修改
-p参数或容器内的--port。 - 内存不足可能导致服务启动失败,可适当调整 Docker 容器的内存限制。