在 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 用户:
💡 提示:如果你不确定是否已安装 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)
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.2.0
✅ 2. GPU 版(仅限 Linux)
⚠️ 请确保你已正确安装 NVIDIA Container Toolkit!
推荐:CUDA 11.8(兼容性最好)
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.2.0-gpu-cuda11.8-cudnn8.9
其他选项(适用于较新驱动)
# 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) [2]
▶️ 三、启动 Docker 容器
🖥️ CPU 版启动命令(Linux / macOS)
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)
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 | |
-p 8038:8038 | |
--gpus all | |
🔍 四、进入容器
docker exec -it paddle_docker /bin/bash
进入后,你将看到一个已预装 Python 3 + PaddlePaddle 3.2.0 的干净环境。
验证 Paddle 是否正常:
python -c "import paddle; print(paddle.__version__)"
📂 五、获取 PaddleOCR 表格 PDF 示例项目
项目地址:https://gitee.com/michah/paddleocr_table_pdf_demo [3]
在容器内执行:
cd /paddle
git clone https://gitee.com/michah/paddleocr_table_pdf_demo
cd paddleocr_table_pdf_demo
📦 六、安装依赖
该项目未提供 requirements.txt,但根据 README,我们需要手动安装以下依赖:
pip install paddleocr==3.2.0 PyMuPDF Pillow reportlab tqdm opencv-python numpy
💡 注意:PaddleOCR 3.2.0 与 PaddlePaddle 3.2.0 版本需严格匹配,避免兼容问题。
▶️ 七、运行示例程序
python demo.py
该脚本会:
读取项目中的 page_6.png 图像(含表格)
输出结构化 JSON 并生成美观 PDF(page_5_pred_html_fixed.pdf)
你可以在 /paddle/paddleocr_table_pdf_demo 目录下查看结果文件。
❓ 八、常见问题解答
Q1:如何确认 GPU 是否生效?
在容器内执行:
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 会自动下载中文检测/识别模型。若网络较慢,可提前设置缓存目录:
export PADDLE_HOME=/paddle/.paddle
mkdir -p $PADDLE_HOME
模型将缓存在该路径下,避免重复下载。
✅ 总结
通过 Docker,我们实现了:
环境隔离:无需污染本地 Python 环境
一键部署:官方镜像已预装 PaddlePaddle
跨平台支持:Linux(CPU/GPU)、macOS(CPU)均可运行
快速验证:5 分钟内跑通 PaddleOCR 表格识别全流程
📌 项目完整流程:图像表格识别 → 结构化 JSON → 高保真 PDF 导出
🔗 参考资料
欢迎点赞、收藏、关注!
如有问题,欢迎在评论区交流 👇
引用链接
[1]NVIDIA Container Toolkit:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
[2]PaddlePaddle Docker 安装文档(macOS):https://www.paddlepaddle.org.cn/documentation/docs/zh/install/docker/macos-docker.html
[3]:https://gitee.com/michah/paddleocr_table_pdf_demo
[4]PaddlePaddle 官方 Docker 安装指南(macOS):https://www.paddlepaddle.org.cn/documentation/docs/zh/install/docker/macos-docker.html
[5]PaddleOCR GitHub 仓库:https://github.com/PaddlePaddle/PaddleOCR
[6]示例项目 Gitee 地址: https://gitee.com/michah/paddleocr_table_pdf_demo