Docker一键部署DeepSeek-OCR-WEBUI|快速搭建高性能OCR识别系统

Docker一键部署DeepSeek-OCR-WEBUI|快速搭建高性能OCR识别系统

1. 背景与核心价值

在数字化转型加速的背景下,光学字符识别(OCR)技术已成为企业自动化流程中的关键一环。无论是金融票据处理、物流单据录入,还是教育资料电子化,高效精准的文本提取能力都直接影响着业务效率。

DeepSeek-OCR 是由 DeepSeek 团队开源的一款基于深度学习的大模型 OCR 引擎,具备高精度、多语言支持和复杂场景鲁棒性强等优势。其 WebUI 版本通过图形化界面极大降低了使用门槛,配合 Docker 部署方案,实现了“开箱即用”的极致体验。

本文将详细介绍如何通过 Docker Compose 一键部署 DeepSeek-OCR-WEBUI,涵盖环境准备、GPU 支持配置、镜像构建与服务启动全流程,帮助开发者和运维人员快速搭建一个可投入生产的高性能 OCR 识别系统。


2. 系统架构与功能特性

2.1 技术架构概览

DeepSeek-OCR-WEBUI 采用模块化设计,整体架构如下:

  • 前端层:基于 FastAPI + Gradio 构建的交互式 Web UI,提供直观的操作界面。
  • 推理引擎层
    • 可选 Hugging Face Transformers 或 vLLM 推理后端
    • 默认使用 deepseek-ai/DeepSeek-OCR 模型
  • 运行时依赖
    • Python 3.12+
    • PyTorch 2.6.0 + CUDA 11.8 支持
    • NVIDIA GPU 加速(支持 MPS on Apple Silicon)
  • 部署方式:Docker 容器化封装,支持 GPU 设备直通

该系统支持自动切换 ModelScope 和 HuggingFace 下载源,在国内网络环境下依然稳定可用。

2.2 核心功能亮点

功能描述
🎯 7 种识别模式包括文档转 Markdown、通用 OCR、图表解析、查找定位等,满足多样化需求
🖼️ 边界框可视化在“查找”模式下自动标注文本位置,便于字段提取
📦 批量图片处理支持多图连续上传并逐张识别
📄 PDF 文件支持自动将 PDF 每页转换为图像进行 OCR 处理
🌐 多语言识别支持简体中文、繁体中文、英文、日文等主流语言
⚡ GPU 加速推理利用 NVIDIA GPU 实现低延迟、高吞吐量的批量处理
🐳 一键 Docker 部署提供完整 docker-compose.yml,简化部署流程
特别说明:自 v3.2 起已原生支持 PDF 文件上传,系统会自动将其拆分为单页图像进行处理,保持与其他功能的一致性。

3. 环境准备与依赖安装

3.1 基础操作系统要求

本文以 Ubuntu 24.04.4 Server 为例,确保系统满足以下条件:

  • x86_64 架构或 Apple Silicon(M1/M2/M3/M4)
  • 至少 16GB 内存(推荐 32GB+)
  • NVIDIA GPU 显存 ≥ 16GB(如 RTX 3090 / L40S / A100)
  • 已安装 NVIDIA 驱动(版本 ≥ 580.82)

3.2 安装 Docker

# 更新软件包索引 sudo apt-get update # 安装必要工具 sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common # 添加 Docker 官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加 Docker 仓库 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 再次更新并安装 Docker CE sudo apt-get update sudo apt-get install -y docker-ce # 验证安装 sudo docker --version 

3.3 配置非 root 用户权限

# 将当前用户加入 docker 组 sudo usermod -aG docker ${USER} # 重新登录 SSH 会话使更改生效 

3.4 自定义 Docker 数据目录(可选)

若需指定镜像存储路径(例如挂载大容量磁盘),可修改守护进程配置:

sudo tee /etc/docker/daemon.json <<-'EOF' { "data-root": "/data/docker", "exec-opts":["native.cgroupdriver=systemd"], "log-driver":"json-file", "log-opts": {"max-size":"100m", "max-file":"3"} } EOF sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl enable docker 

4. 配置 GPU 支持:NVIDIA Container Toolkit

Docker 默认无法访问 GPU,必须安装 NVIDIA Container Toolkit 才能启用 --gpus all 参数。

4.1 检查 NVIDIA 驱动状态

nvidia-smi 

输出应包含 GPU 型号、驱动版本及 CUDA 兼容信息。若命令未找到,请先安装官方驱动。

4.2 安装 NVIDIA Container Toolkit

# 安装基础依赖 sudo apt-get update && sudo apt-get install -y --no-install-recommends curl gnupg2 # 添加 NVIDIA 软件源 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list # 启用 experimental 源(可选) sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list # 更新并安装 toolkit sudo apt-get update export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.0-1 sudo apt-get install -y \ nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION} 

4.3 配置 Docker 使用 nvidia-runtime

sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker 

验证配置是否成功:

docker run --rm --gpus all nvidia/cuda:13.0.1-runtime-ubuntu22.04 nvidia-smi 

预期输出为容器内正常显示 GPU 信息。


5. 部署 DeepSeek-OCR-WEBUI 服务

5.1 克隆项目源码

git clone https://github.com/neosun100/DeepSeek-OCR-WebUI.git cd DeepSeek-OCR-WebUI 

该项目已包含完整的 docker-compose.yml 文件,无需手动编写。

5.2 (可选)优化 Dockerfile:添加依赖与国内镜像加速

编辑 Dockerfile,在适当位置插入以下内容以提升构建速度和兼容性:

# 安装系统级依赖 RUN apt-get update && apt-get install -y \ libgl1 \ libglib2.0-0 \ pkg-config \ python3-dev \ build-essential \ && rm -rf /var/lib/apt/lists/* # 配置 pip 国内镜像源 RUN pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple/ 

5.3 启动服务

# 构建并后台启动容器 docker compose up -d 

首次启动将自动拉取镜像并下载模型文件(约数 GB),耗时较长,请耐心等待。

查看服务状态:

docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Ports}}" 

预期输出示例:

NAME STATUS PORTS deepseek-ocr-webui Up 2 minutes (health: starting) 6006/tcp, 8888/tcp, 0.0.0.0:8001->8001/tcp 

5.4 查看日志与模型下载进度

docker logs -f deepseek-ocr-webui 

首次运行时,日志中会显示从 HuggingFace 或 ModelScope 下载模型的过程。若无科学上网,建议提前配置好 modelscope 下载路径。

模型默认保存路径为:~/DeepSeek-OCR-WebUI/models/


6. 访问 WebUI 与 API 接口

6.1 Web 界面访问

打开浏览器,访问:

http://<your-server-ip>:8001/ 

即可进入 DeepSeek-OCR-WEBUI 主界面,支持拖拽上传图片或 PDF 文件进行识别。

6.2 API 文档与健康检查

  • Swagger UIhttp://<your-server-ip>:8001/docs
  • 健康检查接口http://<your-server-ip>:8001/health(返回 JSON { "status": "ok" }

可通过此 API 集成到企业内部系统中,实现自动化文档处理流水线。


7. 常用运维命令汇总

操作命令
查看容器状态docker compose ps
查看实时日志docker logs -f deepseek-ocr-webui
重启服务docker restart deepseek-ocr-webui
完全重启(重载配置)docker compose restart
停止服务docker compose down
重新构建并启动docker compose up -d --build
查看资源占用docker stats deepseek-ocr-webui
实时监控 GPUwatch -n 1 nvidia-smi

8. 总结

本文详细介绍了如何通过 Docker 快速部署 DeepSeek-OCR-WEBUI,构建一个高性能、易扩展的 OCR 识别系统。整个过程涵盖了:

  • Ubuntu 系统下的 Docker 与 NVIDIA 驱动环境搭建
  • NVIDIA Container Toolkit 的正确配置方法
  • 使用 docker-compose.yml 一键启动服务
  • WebUI 与 API 的双重访问方式
  • 日常运维与问题排查技巧

得益于容器化封装和国产模型对中文场景的高度优化,该方案特别适用于需要处理大量中文文档的企业级应用,如银行票据识别、合同结构化解析、档案数字化等场景。

通过本次部署,你已经拥有了一个可立即投入使用的智能 OCR 平台,后续可根据实际业务需求进一步集成至工作流中,显著降低人工录入成本,提升数据处理效率。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 ZEEKLOG星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Read more

前端·基础三件套『课堂随笔』

前端·基础三件套『课堂随笔』

Zero·前言 * 前端开发的概述 前端开发(Front-end Development)是指创建网站或Web应用程序用户界面(UI)及用户体验(UX)部分的过程,涉及用户直接与之交互的所有内容。 通常我们说的前端就是 WEB前端,也就是写网页的~ 核心职责 * 界面实现:将设计稿转化为可交互的网页(切图仔) * 用户体验优化:确保界面响应迅速、操作流畅 * 浏览器兼容性:保证在不同浏览器和设备上表现一致 * 性能优化:提高页面加载速度和运行效率 * 与后端协作:通过API获取和提交数据 核心技术栈 * 基础三件套 * HTML:页面结构和内容 * CSS:样式和布局 * JavaScript:交互逻辑和行为 * 现代技术生态 * 框架/库:Vue、React、Angular等 * CSS预处理器:Sass、Less * 构建工具:Vite、Webpack、Parcel * 包管理器:

AWPortrait-Z WebUI历史管理技巧:JSONL日志解析+自定义标签分类脚本

AWPortrait-Z WebUI历史管理技巧:JSONL日志解析+自定义标签分类脚本 AWPortrait-Z 基于Z-Image精心构建的人像美化LoRA 二次开发webui构建by科哥 AWPortrait-Z 基于Z-Image精心构建的人像美化LoRA 二次开发webui构建by科哥 你是否遇到过这样的情况:生成了几十张人像图,想快速找出“戴眼镜的亚洲女性”或“油画风格+暖光+特写”的作品,却只能靠肉眼一张张翻历史缩略图?或者想复现某次惊艳效果,却记不清当时用的是哪个随机种子、LoRA强度设为多少?AWPortrait-Z 的历史记录功能虽已提供基础回溯能力,但默认的 JSONL 日志文件只是原始参数快照——它不带语义、不支持搜索、无法按业务维度归类。本文不讲怎么调参、不重复界面操作,而是聚焦一个被多数用户忽略却极具生产力价值的环节:让历史真正“活”起来。我们将手把手带你完成三件事:读懂 history.jsonl 的真实结构、用 Python 脚本自动提取关键特征、建立可扩展的标签体系并实现一键分类归档。所有代码均可直接运行,无需额外依赖,小白也能在15分钟内让自己的

前端监控:别让你的应用在黑暗中运行

前端监控:别让你的应用在黑暗中运行 毒舌时刻 这应用运行得跟幽灵似的,出了问题都不知道。 各位前端同行,咱们今天聊聊前端监控。别告诉我你还在等用户反馈问题,那感觉就像在没有监控的仓库里放贵重物品——能放,但丢了都不知道。 为什么你需要前端监控 最近看到一个项目,用户反映页面经常崩溃,但开发团队根本不知道问题出在哪里。我就想问:你是在做应用还是在做猜谜游戏? 反面教材 // 反面教材:没有监控 function App() { const [data, setData] = React.useState([]); useEffect(() => { async function fetchData() { try { const response = await fetch('/api/data'); const result = await response.json(); setData(result); } catch (error)

在Ubuntu 20.04上安装Ollama并部署大型语言模型:含Open WebUI图形界面教程

在Ubuntu 20.04上安装Ollama并部署大型语言模型:含Open WebUI图形界面教程

在Ubuntu 20.04上安装Ollama并部署大型语言模型:含Open WebUI图形界面教程 引言 在人工智能浪潮席卷全球的今天,大型语言模型(LLM)不再是遥不可及的云端技术。借助 Ollama,每一位开发者都能轻松地将强大的模型部署在自己的本地计算机上,实现无缝、私密且可定制的AI体验。本文将带领您一步步在 Ubuntu 20.04 系统上完成 Ollama 的安装与模型部署,并最终搭建美观易用的图形化界面(Open webui)。 Ollama 是什么? Ollama 是一个开源项目,专为在本地运行、管理和部署大型语言模型(如 Llama 3、Mistral、Gemma 等)而设计。 它的核心概念与优势非常清晰: * 简单易用:通过简单的命令行工具,即可完成模型的下载(pull)、运行(run)和管理。一条命令就能启动与模型的对话。 * 丰富的模型库:它提供了官方支持的模型库(Ollama