
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
GitHub: https://github.com/hwdsl2/docker-docling
属于https://github.com/hwdsl2/self-hosted-ai-stack的一部分——通过单条命令部署完整的自托管AI栈。
本Docker镜像用于运行自托管文档解析服务器,基于https://github.com/docling-project/docling构建。支持将PDF、DOCX、PPTX、XLSX、HTML、Markdown、LaTeX等格式转换为结构化Markdown、JSON或HTML输出。设计目标是简单、私密、自托管。
📘 新书: 自托管AI构建者指南 — 学习如何将此服务部署为完整、默认安全的私有AI栈的一部分。
DOCLING_ENABLE_UI)docling_manage):cuda镜像标签)DOCLING_LOCAL_ONLY)linux/amd64、linux/arm64使用以下命令启动文档解析服务器:
bashdocker run \ --name docling \ --restart=always \ -v docling-data:/var/lib/docling \ -p 5001:5001 \ -d docker.xuanyuan.run/hwdsl2/docling-server
注意: 对于面向互联网的部署,强烈建议使用反向代理添加HTTPS。此时,将-p 5001:5001替换为-p 127.0.0.1:5001:5001,以防止直接访问未加密端口。
提供单独的docker-compose.cuda.yml用于GPU部署:
bashcp docling.env.example docling.env # 根据需要编辑docling.env,然后执行: docker compose -f docker-compose.cuda.yml up -d docker logs docling
示例docker-compose.cuda.yml(已包含):
yamlservices: docling: image: docker.xuanyuan.run/hwdsl2/docling-server:cuda container_name: docling restart: always ports: - "5001:5001/tcp" # 若使用主机反向代理,改为"127.0.0.1:5001:5001/tcp" volumes: - docling-data:/var/lib/docling - ./docling.env:/docling.env:ro deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] volumes: docling-data: name: docling-data
在环境文件中设置DOCLING_DEVICE=cuda(或auto)以使用GPU。
若您有NVIDIA GPU,使用:cuda镜像实现硬件加速推理:
bashdocker run \ --name docling \ --restart=always \ --gpus=all \ -v docling-data:/var/lib/docling \ -p 5001:5001 \ -d docker.xuanyuan.run/hwdsl2/docling-server:cuda
要求: NVIDIA GPU、主机安装https://www.nvidia.com/en-us/drivers/(Linux:575.57.08+,Windows:576.57+)和https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html。`:cuda`镜像仅支持`linux/amd64`。
模型已内置到镜像中,首次启动时加载到内存。查看日志确认服务器就绪:
bashdocker logs docling
看到“Docling document parsing server is ready”后,转换第一个文档:
bashcurl -X POST http://您的服务器IP:5001/v1/convert/source \ -H "Content-Type: application/json" \ -d '{"sources": [{"kind": "http", "url": "https://arxiv.org/pdf/2501.17887"}]}'
所有变量均为可选。新安装并挂载/var/lib/docling卷时会自动生成API密钥。无密钥的现有安装保持开放以兼容旧版本。
本镜像使用以下变量,可在env文件中声明(见示例):
| 变量 | 描述 | 默认值 |
|---|---|---|
DOCLING_PORT | API的HTTP端口(1–65535) | 5001 |
DOCLING_API_KEY | 可选API密钥。新的持久化安装会自动生成。若设置,转换/分块API请求需包含X-Api-Key: <key>头。健康和版本端点无需密钥。设为空可禁用认证。 | 新持久化安装自动生成 |
DOCLING_LOG_LEVEL | 日志级别:DEBUG、INFO、WARNING、ERROR | INFO |
DOCLING_WORKERS | Uvicorn工作进程数。多核系统可增加以提高吞吐量(每个进程独立加载模型,需更多内存) | 1 |
DOCLING_ENABLE_UI | 启用/ui处的Web UI playground,设为true或false | false |
DOCLING_MAX_PAGES | 每个文档的最大页数 | 无限制 |
DOCLING_MAX_FILE_SIZE | 上传文件的最大大小(字节,如50000000约50MB) | 无限制 |
DOCLING_DEVICE | 计算设备:cpu、cuda或auto | cpu |
DOCLING_LOCAL_ONLY | 设为非空值(如true)时禁用所有HuggingFace模型下载,适用于离线/气隙部署 | 未设置 |
DOCLING_DISABLE_USAGE_COUNTS | 设为1禁用***聚合使用统计 | 未设置 |
注意: 在env文件中,值可使用单引号包裹(如VAR='value'),=两侧不要加空格。若修改DOCLING_PORT,需相应更新docker run命令中的-p参数。
使用env文件的示例:
bashcp docling.env.example docling.env # 编辑docling.env后执行: docker run \ --name docling \ --restart=always \ -v docling-data:/var/lib/docling \ -v ./docling.env:/docling.env:ro \ -p 5001:5001 \ -d docker.xuanyuan.run/hwdsl2/docling-server
环境文件绑定挂载到容器中,重启时无需重建容器即可应用更改。
POST /v1/convert/source Content-Type: application/json
参数:
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
sources | 数组 | ✅ | 源对象数组,每个对象包含kind("http")和url(要获取的URL) |
示例:
bashcurl -X POST http://您的服务器IP:5001/v1/convert/source \ -H "Content-Type: application/json" \ -d '{"sources": [{"kind": "http", "url": "https://arxiv.org/pdf/2501.17887"}]}'
带API密钥认证:
bashcurl -X POST http://您的服务器IP:5001/v1/convert/source \ -H "X-Api-Key: 您的API密钥" \ -H "Content-Type: application/json" \ -d '{"sources": [{"kind": "http", "url": "https://arxiv.org/pdf/2501.17887"}]}'
POST /v1/convert/file Content-Type: multipart/form-data
示例:
bashcurl -X POST http://您的服务器IP:5001/v1/convert/file \ -F "files=@document.pdf"
对于大型文档,使用异步端点避免超时:
POST /v1/convert/source/async → 返回task_id GET /v1/status/poll/{task_id} → 轮询任务状态 GET /v1/result/{task_id} → 获取结果
GET /health → 存活检查(始终返回200) GET /ready → 就绪检查(模型加载前返回503)
GET /version
返回docling、docling-serve和docling-core版本。
完整的交互式Swagger UI可在以下地址访问:
http://您的服务器IP:5001/docs
注意: API密钥认证使用X-Api-Key头(非Authorization: Bearer)。健康、版本和文档端点(/health、/ready、/version、/docs)无需API密钥。
所有运行时数据存储在Docker卷(容器内/var/lib/docling):
/var/lib/docling/ ├── .port # 活跃端口(供docling_manage使用) ├── .server_addr # 缓存的服务器IP(供docling_manage使用) └── hub/ # HuggingFace Hub缓存(用于运行时下载的模型)
注意: 文档转换模型(布局、表格结构、OCR)已内置到镜像中,无需单独下载。Docker卷仅存储运行时数据。
使用容器内的docling_manage脚本检查和管理服务器:
docker exec docling docling_manage --showinfodocker exec docling docling_manage --showformatsdocker exec docling docling_manage --downloadmodelsdocker exec docling docling_manage --version| 格式 | 扩展名 |
|---|---|
.pdf | |
| Microsoft Word | .docx |
| Microsoft PowerPoint | .pptx |
| Microsoft Excel | .xlsx |
| HTML | .html、.htm |
| Markdown | .md |
| LaTeX | .tex |
| AsciiDoc | .adoc、.asciidoc |
| CSV | .csv |
| 图片 | .png、.jpg、.jpeg、.tiff、.bmp、.gif |
| 格式 | 描述 |
|---|---|
| Markdown | 带表格的结构化Markdown |
| JSON | 完整文档结构的JSON |
| HTML | 渲染后的HTML输出 |
| 文本 | 纯文本提取 |
| DocTags | Docling的内部标记格式 |
输出格式通过API请求控制,详见/docs的交互式文档。
面向互联网的部署需在Docling服务器前放置反向代理处理HTTPS终止。本地或可信网络可无需HTTPS,但暴露到互联网时强烈建议使用HTTPS。
从反向代理访问Docling容器的地址:
docling:5001:若反向代理与Docling在同一Docker网络(如同一docker-compose.yml中)127.0.0.1:5001:若反向代理运行在主机且端口5001已发布(默认docker-compose.yml已发布)Caddy示例(自动TLS,同一Docker网络):
Caddyfile:
docling.example.com { reverse_proxy docling:5001 }
nginx示例(主机反向代理):
nginxserver { listen 443 ssl; server_name docling.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:5001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 300s; } }
新的持久化安装会自动生成DOCLING_API_KEY,使用docker exec docling docling_manage --showkey查看,或在脚本中使用docker exec docling docling_manage --getkey。无密钥的现有安装可在env文件中设置DOCLING_API_KEY启用认证。
更新镜像和容器:
docker pull docker.xuanyuan.run/hwdsl2/docling-serverdocker rm -f doclingdocker run命令(数据保存在docling-data卷中)Docling可作为自托管AI栈中的文档转换服务。详见https://github.com/hwdsl2/self-hosted-ai-stack获取完整/
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务