在 Linux / macOS 下使用 Docker 快速部署 PaddlePaddle + 运行 PaddleOCR 表格 PDF 解析示例

适用人群 :想快速体验 PaddlePaddle + PaddleOCR 的开发者
系统支持 :Linux(CPU/GPU)、macOS(仅 CPU)
版本说明:基于 PaddlePaddle 3.2.0 + PaddleOCR v3.2.0


🧰 一、环境准备

在开始之前,请确保你的开发环境满足以下条件:

  • 已安装 Docker 20.x 及以上版本
  • Linux 用户(GPU 版本)
  • macOS 用户
    • 使用 Docker Desktop for Mac(仅支持 CPU)

💡 提示:如果你不确定是否已安装 NVIDIA Container Toolkit,可在终端执行 docker run --gpus all nvidia/cuda:11.8-base-ubuntu22.04 nvidia-smi。如果能正常输出显卡信息,则说明配置成功。


📦 二、拉取 PaddlePaddle Docker 镜像

PaddlePaddle 官方提供了多个预构建的 Docker 镜像,包含 CPU 和 GPU 版本。我们推荐使用百度云镜像源(国内下载更快):

✅ 1. CPU 版(适用于 macOS / 无 GPU 的 Linux)

bash 复制代码
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.2.0

✅ 2. GPU 版(仅限 Linux)

⚠️ 请确保你已正确安装 NVIDIA Container Toolkit!

推荐:CUDA 11.8(兼容性最好)
bash 复制代码
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.2.0-gpu-cuda11.8-cudnn8.9
其他选项(适用于较新驱动)
bash 复制代码
# CUDA 12.6
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.2.0-gpu-cuda12.6-cudnn9.5

# CUDA 12.9
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.2.0-gpu-cuda12.9-cudnn9.9

🔗 镜像详情参考:PaddlePaddle Docker 安装文档(macOS)


▶️ 三、启动 Docker 容器

🖥️ CPU 版启动命令(Linux / macOS)

bash 复制代码
docker run --name paddle_docker \
  -itd \
  -v $PWD:/paddle \
  -p 8038:8038 \
  ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.2.0 \
  /bin/bash

🎮 GPU 版启动命令(仅 Linux)

bash 复制代码
docker run --name paddle_docker \
  --gpus all \
  -itd \
  -v $PWD:/paddle \
  ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.2.0-gpu-cuda11.8-cudnn8.9 \
  /bin/bash

参数说明

参数 说明
--name paddle_docker 指定容器名称,方便后续操作
-itd 后台运行,并支持交互式终端
-v $PWD:/paddle 将当前主机目录挂载到容器 /paddle 路径
-p 8038:8038 端口映射(如需 Web 服务可保留)
--gpus all 启用所有 GPU(仅 GPU 版需要)

🔍 四、进入容器

bash 复制代码
docker exec -it paddle_docker /bin/bash

进入后,你将看到一个已预装 Python 3 + PaddlePaddle 3.2.0 的干净环境。

验证 Paddle 是否正常:

bash 复制代码
python -c "import paddle; print(paddle.__version__)"

📂 五、获取 PaddleOCR 表格 PDF 示例项目

项目地址:https://gitee.com/michah/paddleocr_table_pdf_demo

在容器内执行:

bash 复制代码
cd /paddle
git clone https://gitee.com/michah/paddleocr_table_pdf_demo
cd paddleocr_table_pdf_demo

📦 六、安装依赖

该项目未提供 requirements.txt,但根据 README,我们需要手动安装以下依赖:

bash 复制代码
pip install paddleocr==3.2.0 PyMuPDF Pillow reportlab tqdm opencv-python numpy

💡 注意:PaddleOCR 3.2.0 与 PaddlePaddle 3.2.0 版本需严格匹配,避免兼容问题。


▶️ 七、运行示例程序

bash 复制代码
python demo.py

该脚本会:

  1. 读取项目中的 page_6.png 图像(含表格)
  2. 使用 PaddleOCR 的表格识别能力解析结构
  3. 输出结构化 JSON 并生成美观 PDF(page_5_pred_html_fixed.pdf

你可以在 /paddle/paddleocr_table_pdf_demo 目录下查看结果文件。


❓ 八、常见问题解答

Q1:如何确认 GPU 是否生效?

在容器内执行:

python 复制代码
python -c "import paddle; print(paddle.device.get_device())"
  • 输出 gpu:0 表示 GPU 正常
  • 输出 cpu 表示仅使用 CPU

Q2:macOS 能用 GPU 吗?

不能。Docker Desktop for Mac 不支持 GPU 加速,只能使用 CPU 版本。如需 GPU 推理,请使用 Linux 主机。

Q3:中文模型下载太慢怎么办?

PaddleOCR 会自动下载中文检测/识别模型。若网络较慢,可提前设置缓存目录:

bash 复制代码
export PADDLE_HOME=/paddle/.paddle
mkdir -p $PADDLE_HOME

模型将缓存在该路径下,避免重复下载。


✅ 总结

通过 Docker,我们实现了:

  • 环境隔离:无需污染本地 Python 环境
  • 一键部署:官方镜像已预装 PaddlePaddle
  • 跨平台支持:Linux(CPU/GPU)、macOS(CPU)均可运行
  • 快速验证:5 分钟内跑通 PaddleOCR 表格识别全流程

📌 项目完整流程:图像表格识别 → 结构化 JSON → 高保真 PDF 导出


🔗 参考资料


欢迎点赞、收藏、关注!

如有问题,欢迎在评论区交流 👇

相关推荐
天天喝旺仔5 分钟前
Linux 性能排查实战:用 perf、strace 与火焰图定位 CPU、内存与 IO 瓶颈
linux·性能优化·运维开发
LuminousCPP10 分钟前
Linux系统编程(二):从目录树到命令执行|路径、环境变量、alias 与文件操作入门
linux·经验分享·笔记
第十人i13 分钟前
Linux 系统初始化配置清单:新服务器快速部署
linux·服务器
LongRunning15 分钟前
【Linux】RK3568-OpenCV+YOLO(七)
linux
j7~23 分钟前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
一直在努力学习的菜鸟28 分钟前
Docker Info 详细解析(Rocky Linux 8.10 / Docker 29.8.1)
docker
傲世仙尊1 小时前
设计者的取舍-路径fork的诞生与全局文件队列
linux
逐流人1 小时前
Containerd容器管理实战:从架构原理到nerdctlcrictl工具链
linux·运维·云原生·容器·云计算·containerd
Tairitsu_H1 小时前
[Linux] 编辑器vim、编译器和动静态链接
linux·vim·gcc·g++·动态链接·静态链接
lzx_0021 小时前
Linux指令(一) 简单了解部分指令
linux