Docker 部署 MinerU 教程:打造你的本地 PDF 智能處理中心
在開始 MinerU 鏡像拉取與部署操作前,我們先簡要明確MinerU的核心價值與Docker部署的優勢——這能幫助你更清晰地理解后續操作的意義。
關于 MinerU:核心功能與價值
MinerU 是一款專注于PDF格式轉化的工具,尤其擅長將科技文獻轉化為機器可讀格式(如markdown、json),誕生于書生-浦語預訓練過程中,核心價值體現在對復雜排版PDF的精準解析與結構化提取。其核心功能可概括為六大類:
- 智能凈化內容:自動刪除頁眉、頁腳、腳注、頁碼等冗余元素,確保文本語義連貫;
- 排版自適應:支持單欄、多欄及復雜排版PDF,輸出符合人類閱讀順序的文本;
- 結構化保留:完整提取文檔結構(標題、段落、列表等),維持原文邏輯層次;
- 多元素提取:精準識別并轉換公式(LaTeX格式)、表格(HTML格式)、圖像及描述、腳注等;
- 全場景兼容:自動檢測掃描版/亂碼PDF并啟用OCR,支持84種語言識別,適配純CPU及GPU/NPU/MPS加速;
- 多格式輸出:提供多模態Markdown、有序JSON、中間格式等輸出,支持可視化質檢(layout/span可視化)。
其最大特點是專注科技文獻解析(解決符號轉化難題)、跨平臺兼容(Windows/Linux/macOS)、輕量與高效兼顧(支持CPU/GPU靈活切換),因此成為科研人員、開發者處理學術文獻的高效工具。
為什么用 Docker 部署 MinerU?核心優勢
傳統方式部署MinerU(如源碼安裝、pip安裝)常面臨依賴復雜、環境沖突、GPU配置繁瑣等問題(例如:Python版本不兼容、CUDA驅動與PyTorch版本 mismatch、不同系統庫導致的功能缺失)。而Docker部署能完美解決這些痛點,核心優勢如下:
- 環境零配置:Docker鏡像已打包所有依賴(Python 3.10-3.13、CUDA工具鏈、模型文件、系統庫等),無需手動安裝顯卡驅動、調整Python版本或解決庫沖突,開箱即用;
- GPU支持無縫化:通過
--gpus=all參數即可一鍵啟用GPU加速,無需單獨配置NVIDIA Container Toolkit與深度學習框架的適配,避免“能檢測GPU卻無法加速”的問題; - 跨系統一致性:無論在Ubuntu、Windows(WSL2)還是macOS(M1/M2芯片),Docker容器內的MinerU行為完全一致,徹底消除“Linux能跑、Windows報錯”的兼容問題;
- 快速啟停與隔離:容器啟動僅需秒級,且與主機環境完全隔離,測試不同版本時只需切換鏡像,不會污染本地環境;
- 部署流程標準化:通過統一的命令即可完成WebUI(7860端口)與WebAPI(3000端口)的啟動,無需記憶復雜的參數配置,新手也能快速上手。
?? 準備工作
若你的系統尚未安裝 Docker 或 NVIDIA 容器工具(需GPU加速時),請先完成以下配置:
1. Docker 與 Docker Compose 一鍵安裝(全系統通用)
Linux 系統
一鍵安裝腳本(支持Ubuntu/Debian/CentOS,自動配置鏡像加速):
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
Windows 系統
- 安裝 Docker Desktop(需啟用WSL2);
- 進入
設置 > Resources > WSL Integration,開啟目標WSL2發行版的集成。
macOS 系統
- 安裝 Docker Desktop for Mac;
- M1/M2芯片用戶需在
設置 > Features in development中勾選“Use Rosetta for x86/amd64 emulation on Apple Silicon”。
2. GPU 加速前置配置(可選,需CUDA支持)
若需啟用GPU加速(推薦,提升解析速度5-10倍),需確保:
- 顯卡為NVIDIA Turing及以后架構(如RTX 2060+/30系列/40系列),顯存≥6GB;
- 已安裝NVIDIA驅動(版本≥525.60.13);
- 安裝NVIDIA Container Toolkit(讓Docker識別GPU):
# Ubuntu/Debian 示例 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker
驗證GPU是否可用
運行以下命令(已替換為軒轅鏡像加速地址),若能顯示顯卡信息則配置成功:
docker run --rm --gpus=all xxx.xuanyuan.run/nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi
1、獲取 MinerU 鏡像
1.1 完整 Dockerfile(含軒轅鏡像加速)
# Use the official vllm image for gpu with Ampere architecture and above (Compute Capability>=8.0)
# Compute Capability version query (https://developer.nvidia.com/cuda-gpus)
FROM xxx.xuanyuan.run/vllm/vllm-openai:v0.10.1.1
# Use the official vllm image for gpu with Turing architecture and below (Compute Capability<8.0)
# FROM xxx.xuanyuan.run/vllm/vllm-openai:v0.10.2
# Install libgl for opencv support & Noto fonts for Chinese characters
RUN apt-get update && \
apt-get install -y \
fonts-noto-core \
fonts-noto-cjk \
fontconfig \
libgl1 && \
fc-cache -fv && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Install mineru latest
RUN python3 -m pip install -U 'mineru[core]' --break-system-packages && \
python3 -m pip cache purge
# Download models and update the configuration file
RUN /bin/bash -c "mineru-models-download -s huggingface -m all"
# Set the entry point to activate the virtual environment and run the command line tool
ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"]
1.2 下載 Dockerfile
wget https://github.com/opendatalab/MinerU/raw/master/docker/global/Dockerfile -O Dockerfile
說明:下載后可直接替換文件中的鏡像地址為上述軒轅加速地址,或直接使用上方完整Dockerfile內容創建新文件。
1.3 構建鏡像(軒轅鏡像加速)
docker build -t xxx.xuanyuan.run/mineru:latest .
說明:
- 構建時使用軒轅鏡像加速,后續部署可直接通過加速地址拉取;
- 構建過程會自動通過軒轅鏡像加速拉取基礎依賴,耗時約10-30分鐘(取決于網絡速度);
- 鏡像大小約20GB,需確保磁盤空間充足(推薦SSD,提升構建速度)。
1.4 驗證鏡像是否構建成功
docker images | grep xxx.xuanyuan.run/mineru
若輸出類似以下內容,說明鏡像構建成功:
xxx.xuanyuan.run/mineru latest abc123456789 10分鐘前 20.5GB
2、部署 MinerU
提供三種部署方案,可根據場景選擇。
2.1 快速部署(測試用,最簡方式)
適合臨時測試功能,命令如下:
docker run --rm -it \
-p 3000:3000 -p 7860:7860 \ # 映射WebAPI(3000)和WebUI(7860)端口
--gpus=all \ # 啟用GPU加速(無GPU可刪除此參數)
xxx.xuanyuan.run/mineru:latest # 軒轅鏡像加速
核心參數說明:
-p 3000:3000:WebAPI端口映射,用于通過API調用解析功能;-p 7860:7860:WebUI端口映射,用于通過瀏覽器可視化操作;--gpus=all:允許容器使用所有GPU(無GPU環境需刪除,自動切換為CPU模式);--rm:容器停止后自動刪除,避免殘留文件;xxx.xuanyuan.run/mineru:latest
驗證方式:
- 瀏覽器訪問
http://localhost:7860,應顯示MinerU的WebUI界面; - 終端執行
curl http://localhost:3000/docs,應返回API文檔說明。
2.2 掛載目錄(生產用,推薦方式)
通過掛載宿主機目錄,實現「PDF文件持久化」「輸出結果本地保存」「配置文件自定義」,步驟如下:
第一步:創建宿主機目錄
# 分別用于存放輸入PDF、輸出結果、自定義配置
mkdir -p /data/mineru/{input,output,config}
第二步:啟動容器并掛載目錄
docker run -d --name mineru-service \
-p 3000:3000 -p 7860:7860 \
--gpus=all \
-v /data/mineru/input:/opt/mineru/input \ # 輸入PDF目錄
-v /data/mineru/output:/opt/mineru/output \ # 輸出結果目錄
-v /data/mineru/config:/opt/mineru/config \ # 配置文件目錄
xxx.xuanyuan.run/mineru:latest # 軒轅鏡像加速
目錄映射說明:
| 宿主機目錄 | 容器內目錄 | 用途 |
|---|---|---|
/data/mineru/input |
/opt/mineru/input |
存放待解析的PDF文件 |
/data/mineru/output |
/opt/mineru/output |
保存解析后的markdown/json等文件 |
/data/mineru/config |
/opt/mineru/config |
存放自定義配置(如模型參數) |
使用示例:
- 將待解析的
paper.pdf放入/data/mineru/input; - 在WebUI中選擇“輸入路徑”為
/opt/mineru/input/paper.pdf,“輸出路徑”為/opt/mineru/output/result.md; - 解析完成后,在宿主機
/data/mineru/output中即可找到result.md。
2.3 docker-compose 部署(企業級場景,批量管理)
通過docker-compose.yml統一管理容器配置,支持一鍵啟動/停止,適合多實例或與其他服務聯動,步驟如下:
第一步:創建 docker-compose.yml 文件
version: '3.8'
services:
mineru:
image: xxx.xuanyuan.run/mineru:latest # 軒轅鏡像加速
container_name: mineru-service
ports:
- "3000:3000" # WebAPI
- "7860:7860" # WebUI
volumes:
- ./input:/opt/mineru/input
- ./output:/opt/mineru/output
- ./config:/opt/mineru/config
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all # 使用所有GPU
capabilities: [gpu]
restart: always # 容器退出后自動重啟
第二步:啟動服務
在docker-compose.yml所在目錄執行:
docker compose up -d
補充說明:
- 停止服務:
docker compose down; - 查看日志:
docker compose logs -f mineru; - 如需限制GPU使用數量,將
count: all改為具體數量(如count: 1); - 鏡像拉取優先級:本地已構建
xxx.xuanyuan.run/mineru:latest則直接使用,否則通過軒轅加速倉庫拉取。
3、結果驗證
通過以下方式確認MinerU服務正常運行:
-
WebUI驗證:
瀏覽器訪問http://localhost:7860,上傳一個PDF文件(如test.pdf),點擊“解析”按鈕,若能生成markdown預覽則功能正常。 -
API驗證:
使用curl調用WebAPI(以解析/opt/mineru/input/test.pdf為例):curl -X POST "http://localhost:3000/api/parse" \ -H "Content-Type: application/json" \ -d '{"input_path": "/opt/mineru/input/test.pdf", "output_path": "/opt/mineru/output/test.md"}'若返回
{"status": "success", "message": "解析完成"},則API調用成功。 -
容器狀態驗證:
docker ps | grep mineru-service若
STATUS列顯示Up,說明容器正常運行。
4、常見問題
4.1 GPU不生效?
排查方向:
- 檢查是否遺漏
--gpus=all參數(Docker部署)或devices配置(docker-compose); - 運行
nvidia-smi確認主機GPU正常,驅動版本≥525.60.13; - 重新安裝NVIDIA Container Toolkit并重啟Docker:
sudo systemctl restart docker; - 驗證GPU鏡像時確保使用軒轅加速地址:
docker run --rm --gpus=all xxx.xuanyuan.run/nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi。
4.2 端口被占用?
解決方案:
- 更換宿主機端口,例如將
-p 3000:3000改為-p 3001:3000(用3001端口訪問WebAPI); - 查找占用端口的進程并關閉:
lsof -i:3000(Linux/macOS)或netstat -ano | findstr :3000(Windows)。
4.3 解析速度慢?
優化建議:
- 啟用GPU加速(比CPU快5-10倍),確保顯存≥6GB;
- 減少單次解析的PDF頁數(拆分大型PDF);
- 調整WebUI中的“解析精度”為“快速模式”(適合非復雜排版文檔)。
4.4 OCR識別不準確?
處理方式:
- 確認PDF為掃描版(MinerU會自動檢測,非掃描版無需OCR);
- 在WebUI的“OCR設置”中指定文檔語言(默認自動檢測,小語種建議手動選擇);
- 提升PDF清晰度(分辨率≥300dpi的掃描件識別效果更佳)。
4.5 容器啟動后立即退出?
可能原因:
- 磁盤空間不足(鏡像+臨時文件需≥25GB),清理空間后重啟;
- 內存不足(推薦≥16GB),關閉其他占用內存的進程;
- 查看日志定位錯誤:
docker logs mineru-service; - 確認鏡像地址正確:確保使用
xxx.xuanyuan.run/mineru:latest,避免鏡像拉取失敗。
結尾
至此,你已掌握MinerU的Docker部署全流程——從環境準備、鏡像構建,到不同場景的部署實踐,再到問題排查。對于初學者,建議先通過“快速部署”體驗核心功能,再通過“目錄掛載”實現文件持久化管理;若需集成到業務系統,可基于docker-compose配置實現服務自動化運維。
MinerU在科技文獻解析上的優勢(公式/表格/結構提取)使其成為科研輔助的利器,實際使用中可結合WebUI的可視化質檢功能優化解析結果。若遇到復雜問題,可參考官方文檔或提交issue反饋,社區會持續迭代優化工具能力。

MinerU 是一款專注于PDF格式轉化的工具,尤其擅長將科技文獻轉化為機器可讀格式(如markdown、json),誕生于書生-浦語預訓練過程中,核心價值體現在對復雜排版PDF的精準解析與結構化提取。
浙公網安備 33010602011771號