拉取最新版的python313镜像

本文将介绍如何在 Docker 容器中部署 PaddleOCR 服务。首先,我们需要拉取 Python 3.13 的官方镜像作为基础环境。

docker pull python:3.13.14

说明:这里使用 Python 3.13.14 版本,确保与后续 PaddlePaddle 的兼容性。如果网络较慢,可以配置 Docker 镜像加速。

启动容器

拉取镜像后,启动一个支持 GPU 的容器,并将容器内的 8080 端口映射到宿主机的 9100 端口。

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 版本以及服务化插件。

# 首先安装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

详细说明

  1. 系统依赖:PaddleOCR 需要 OpenGL 等图形库来处理图像,因此先安装 libgl1 等包。
  2. PaddleOCR 安装:使用清华镜像源加速下载,--no-cache-dir 避免占用额外磁盘空间。
  3. PaddlePaddle GPU 版本:这里选择 CUDA 12.6 对应的 paddlepaddle-gpu==3.3.0,确保能够利用 GPU 加速。
  4. 服务化插件paddlex --install serving 会安装 PaddleServing 相关组件,将 OCR 模型转换为可部署的服务。
  5. 启动服务
    • --pipeline OCR:指定使用 OCR 流水线
    • --host 0.0.0.0:监听所有网络接口
    • --port 8080:服务端口(与前面映射的端口一致)
    • --device gpu:0:使用第一个 GPU 设备

验证服务:启动后,可以在宿主机上使用 curl 测试服务是否正常:

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 容器的内存限制。
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐