【Docker项目实战】使用Docker部署Docling开源文档处理工具
一、Docling介绍
1.1 Docling项目简介
Docling是一个强大的开源文档处理工具,专注于解析多种格式的文档(尤其是具备深度理解能力的 PDF),并提供与生成式 AI 生态系统的无缝集成,支持本地运行以保障数据安全。
1.2 Docling主要特点
- 多格式解析:支持 PDF、DOCX、PPTX、XLSX、HTML、音频(WAV、MP3)、字幕(VTT)、图像(PNG、TIFF、JPEG 等)等多种文档和媒体格式的解析。
- 高级 PDF 理解:精准识别 PDF 的页面布局、阅读顺序、表格结构、代码块、数学公式及图像类型,还原文档语义结构。
- 统一文档表示:采用结构清晰、表达力强的
DoclingDocument格式,统一不同来源文档的内部表示。 - 灵活导出选项:可导出为 Markdown、HTML、DocTags 或无损 JSON 等多种格式,便于下游应用处理。
- 本地化执行:支持完全离线运行,适用于处理敏感数据或在无网络连接(air-gapped)环境中使用。
- AI 生态集成:开箱即用支持 LangChain、LlamaIndex、Crew AI 和 Haystack 等主流 AI 框架,轻松构建智能文档代理。
- 强大 OCR 能力:内置对扫描版 PDF 和图像中文本的高精度光学字符识别(OCR)支持。
- 视觉语言模型支持:兼容多种视觉语言模型(如 GraniteDocling),提升图文混合文档的理解能力。
- 音频转文本:集成自动语音识别(ASR)模型,可将 WAV、MP3 等音频文件转换为可处理的文本内容。
- MCP 服务器集成:通过 MCP(Model Control Protocol)服务器,可与任意 AI Agent 连接,实现动态文档处理工作流。
- 便捷命令行工具:提供简单易用的 CLI,快速完成文档解析与转换任务,适合脚本化和自动化部署。单。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 | 备注 |
|---|---|---|---|---|---|
| jeven | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.5.0 | Docling | —— |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Docling开源文档处理工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-12-02 00:51:31 CST; 1min 11s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 75393 (dockerd)
Tasks: 32
Memory: 34.1M (peak: 34.8M)
CPU: 1.248s
CGroup: /system.slice/docker.service

3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker compose version
Docker Compose version v2.39.4
四、拉取Docling镜像
下载Docling镜像,镜像名称为:
quay.io/docling-project/docling-serve:v1.9.0。Docling Serve 有多个镜像,可用于在不同硬件配置下运行,包括quay.io/docling-project/docling-serve-cpu、quay.io/docling-project/docling-serve-cu126、quay.io/docling-project/docling-serve-cu128等,可自行根据需要使用。
docker pull quay.io/docling-project/docling-serve:v1.9.0

五、部署Docling服务
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/docling && cd /data/docling
5.2 docker compose方式部署
使用docke-cli方式部署,可参考:
docker run -d \
docker run -d \
--restart unless-stopped \
--name docling-serve \
-p 5300:5001 \
-e DOCLING_SERVE_ENABLE_UI=1 \
-e GRADIO_MCP_SERVER=True \
quay.io/docling-project/docling-serve:v1.9.0
新建及编辑docker-compose.yaml文件,宿主机映射端口可自行设置,注意防止端口冲突。
vim docker-compose.yaml
version: '3'
services:
docling-serve:
image: quay.io/docling-project/docling-serve:v1.9.0
container_name: docling-serve
restart: always
ports:
- "5300:5001"
environment:
- DOCLING_SERVE_ENABLE_UI=1
- GRADIO_MCP_SERVER=True
- 环境变量解释:
| 环境变量 | 值 | 说明 |
|---|---|---|
DOCLING_SERVE_ENABLE_UI |
1 |
启用 Docling Serve 的 Web 用户界面(UI) |
GRADIO_MCP_SERVER |
True |
启用 Gradio MCP(Model Control Protocol)服务器,用于外部工具或客户端与服务通信 |
5.3 创建Docling容器
执行以下命令,创建Docling容器。
docker compose up -d

5.4 查看Docling容器状态
检查Docling容器运行状态,确保Docling容器正常启动。
root@jeven:/data/docling# docker compose ps
WARN[0000] /data/docling/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docling-serve quay.io/docling-project/docling-serve:v1.9.0 "container-entrypoin…" docling-serve 25 seconds ago Up 24 seconds 8080/tcp, 0.0.0.0:5300->5001/tcp, [::]:5300->5001/tcp
5.5 检查Docling容器日志
检查容器运行日志,确保Docling服务正常运行。
docker compose logs

六、访问Docling服务
6.1 访问Docling首页
浏览器地址:
http://<个人的服务器IP>:5300/ui,访问Docling初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

6.2 文档处理
上传文档后,点击“Process File”选项,开始处理文档,处理后的效果课在线预览。

七、总结
本次实践成功通过Docker和Docker Compose快速部署了Docling开源文档处理工具,验证了其容器化部署的便捷性和高效性。整个过程涵盖了环境检查、镜像拉取、服务编排与启动、状态监控及功能访问等关键步骤。Docling在本地运行稳定,能够顺利提供文档解析与转换服务,展现出良好的易用性和扩展性。通过本次实战,不仅加深了对Docling功能的理解,也提升了使用Docker部署AI/文档处理类应用的实战能力。
- 点赞
- 收藏
- 关注作者
评论(0)