Umi-OCR 的 Docker安装(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)

前置博客:Ubuntu-Server 22.04.4 详细安装图文教程

wget命令在windows终端下不能使用的原因及解决办法

在 Ubuntu 22.04 LTS 上离线安装 Docker

手把手教你在Win11下安装docker

Umi-OCR

安装docker时报错:workstation服务启动报错。错误1075:依存服务不存在, 或已标记为删除的解决方法
在这里插入图片描述

完整部署流程


第一步:在 Windows 上构建/获取 Umi-OCR Docker 镜像

方式一:直接构建镜像
# 下载 Dockerfile
wget https://raw.githubusercontent.com/hiroi-sora/Umi-OCR_runtime_linux/main/Dockerfile# 构建镜像
docker build -t umi-ocr-paddle .

第二步:在 Windows 上测试运行

测试无头模式(HEADLESS 模式),适合在没有显示器的云服务器使用:

# 无头模式运行,提供 HTTP 接口服务
docker run -d --name umi-ocr-test \-e HEADLESS=true \-p 1224:1224 \umi-ocr-paddle

第三步:导出 Docker 镜像

使用 docker save 命令将镜像保存为 tar 文件,这样可以保留镜像的所有历史层和元数据:

# 导出镜像为 tar 文件
docker save -o umi-ocr-paddle.tar umi-ocr-paddle# 或者压缩导出以减小文件大小
docker save umi-ocr-paddle | gzip > umi-ocr-paddle.tar.gz

第四步:将镜像文件传输到 Ubuntu Server

# 使用 scp 传输到目标服务器
scp umi-ocr-paddle.tar.gz user@ubuntu-server-ip:/home/user/# 或者使用 U盘、移动硬盘等物理方式传输

第五步:在 Ubuntu Server 22.04 上导入和运行

导入镜像

使用 docker load 命令从 tar 文件恢复镜像:

# 导入压缩的镜像文件
docker load -i umi-ocr-paddle.tar.gz# 或者导入未压缩的
docker load -i umi-ocr-paddle.tar# 验证镜像导入成功
docker images
运行容器(端口 21224)

配置为无头模式并映射到指定端口:

# 在 21224 端口运行 Umi-OCR
docker run -d --name umi-ocr-server \-e HEADLESS=true \-p 21224:1224 \umi-ocr-paddle# 检查容器运行状态
docker ps# 暂停
docker stop umi-ocr-test

第六步:配置和测试

测试 HTTP 接口

可以通过 HTTP 接口访问 OCR 服务:

# 测试接口是否正常
curl -X POST http://localhost:21224/api/ocr \-H "Content-Type: application/json" \-d '{"base64": "your_base64_encoded_image"}'
持久化配置(可选)
# 挂载配置目录以持久化设置
docker run -d --name umi-ocr-server \-e HEADLESS=true \-p 21224:1224 \-v /opt/umi-ocr-data:/app/UmiOCR-data \umi-ocr-paddle

重要注意事项

CPU 兼容性检查

部署前,请检查主机的CPU是否具有AVX指令集:

# 检查 CPU 是否支持 AVX
cat /proc/cpuinfo | grep avx

防火墙配置

# Ubuntu Server 上开放 21224 端口
sudo ufw allow 
sudo ufw reload

自动启动配置

# 设置容器自动重启
docker update --restart=always umi-ocr-server

故障排除

  1. 如果容器启动失败:检查 CPU 是否支持 AVX 指令集
  2. 端口访问问题:确认防火墙设置和端口映射
  3. 内存不足:可以选择 Rapid 版本,内存占用更低,适合低配机器

这样就完成了从 Windows 到离线 Ubuntu Server 的完整迁移部署,Umi-OCR 将在 21224 端口提供 HTTP OCR 服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90703.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣242.有效的字母异位词

给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的 字母异位词。示例 1:输入: s "anagram", t "nagaram" 输出: true示例 2:输入: s "rat", t "car" 输出: false提示:1 < s.length, t.length < 5 * 104s…

基于Springboot+UniApp+Ai实现模拟面试小工具二:后端项目搭建

本节介绍本项目后端项目的开发工具及基础项目的搭建&#xff0c;包括开发工具介绍及后端项目的创建和依赖框架的引入及对应配置。 源码下载&#xff1a; 点击下载 讲解视频&#xff1a; UniappSpringbootKimi实现模拟面试小程序-Springboot项目创建一&#xff0e;开发工具 1.…

Linux711 Mysql

模版 root192.168.235.130s password:┌──────────────────────────────────────────────────────────────────────┐│ • MobaXterm Personal Edition v23.2 • ││…

QT 秘钥生成工具

该项目是注册机和验证机项目&#xff0c;分别是密钥生成工具&#xff0c;和密钥验证demo,可以识别电脑唯一标识码。#include "frmmain.h" #include "ui_frmmain.h" #include "qmessagebox.h" #include "qfile.h" #pragma execution_ch…

PyTorch神经网络训练全流程详解:从线性层到参数优化

目录 一、神经网络训练的核心组件 二、代码逐行解析与知识点 三、核心组件详解 3.1 线性层(nn.Linear) 3.2 损失函数(nn.MSELoss) 3.3 优化器(optim.SGD) 四、训练流程详解 五、实际应用建议 六、完整训练循环示例 七、总结 在深度学习实践中&#xff0c;理解神经网络…

从代码学习深度学习 - 针对序列级和词元级应用微调BERT PyTorch版

文章目录 前言针对序列级和词元级应用微调BERT单文本分类文本对分类或回归文本标注问答总结前言 在自然语言处理(NLP)的广阔天地里,预训练模型(Pre-trained Models)的出现无疑是一场革命。它们如同站在巨人肩膀上的探索者,使得我们能够利用在大规模文本语料上学到的丰富…

学习笔记丨卷积神经网络(CNN):原理剖析与多领域Github应用

本文深入剖析了卷积神经网络&#xff08;CNN&#xff09;的核心原理&#xff0c;并探讨其在计算机视觉、图像处理及信号处理等领域的广泛应用。下面就是本篇博客的全部内容&#xff01;&#xff08;内附相关GitHub数据库链接&#xff09; 目录 一、什么是CNN&#xff1f; 二、…

cnpm exec v.s. npx

1. 核心定位与设计目标 npx (Node Package Executor): 定位: Node.js 内置工具&#xff08;npm 5.2 起捆绑&#xff09;&#xff0c;核心目标是便捷地执行本地或远程 npm 包中的命令&#xff0c;无需全局安装。核心价值: 避免全局污染&#xff1a; 临时使用某个 CLI 工具&#…

我花10个小时,写出了小白也能看懂的数仓搭建方案

目录 一、什么是数据仓库 1.面向主题 2.集成 3.相对稳定 4.反映历史变化 二、数仓搭建的优势 1.性能 2.成本 3.效率 4.质量 三、数仓搭建要考虑的角度 1.需求 2.技术路径 3.数据路径 4.BI应用路径 四、如何进行数仓搭建 1.ODS层 2.DW层 3.DM层 五、写在最后…

OBB旋转框检测配置与训练全流程(基于 DOTA8 数据集)

&#x1f680; YOLO交通标志识别实战&#xff08;五&#xff09;&#xff1a;OBB旋转框检测配置与训练全流程&#xff08;基于 DOTA8 数据集&#xff09; 在专栏前面四篇里&#xff0c;我们完成了&#xff1a; ✅ Kaggle交通标志数据集下载并重组标准YOLO格式 ✅ 训练/验证集拆…

uniapp制作一个视频播放页面

1.产品展示2.页面功能(1)点击上方按钮实现页面跳转&#xff1b;(2)点击相关视频实现视频播放。3.uniapp代码<template><view class"container"><!-- 顶部分类文字 --><view class"categories"><navigator class"category-…

8.卷积神经网络基础

8.1 卷积核计算 import torch from torch import nn import matplotlib.pyplot as plt def corr2d(X,k):#计算二维互相关运算h,wk.shape#卷积核的长和宽Ytorch.zeros((X.shape[0]-h1,X.shape[1]-w1))#创建(X-H1,X-W1)的全零矩阵for i in range(Y.shape[0]):for j in range(Y.s…

【每天一个知识点】子空间聚类(Subspace Clustering)

“子空间聚类&#xff08;Subspace Clustering&#xff09;”是一种面向高维数据分析的聚类方法&#xff0c;它通过在数据的低维子空间中寻找簇结构&#xff0c;解决传统聚类在高维空间中“维度诅咒”带来的问题。子空间聚类简介在高维数据分析任务中&#xff0c;如基因表达、图…

《汇编语言:基于X86处理器》第7章 整数运算(2)

本章将介绍汇编语言最大的优势之一:基本的二进制移位和循环移位技术。实际上&#xff0c;位操作是计算机图形学、数据加密和硬件控制的固有部分。实现位操作的指令是功能强大的工具&#xff0c;但是高级语言只能实现其中的一部分&#xff0c;并且由于高级语言要求与平台无关&am…

JVM故障处理与类加载全解析

1、故障处理工具基础故障处理工具jps&#xff1a;可以列出正在运行的虚拟机进程&#xff0c;并显示虚拟机执行主类&#xff08;Main Class&#xff0c;main()函数所在的类&#xff09;名称以及这些进程的本地虚拟机唯一ID&#xff08;LVMID&#xff0c;Local Virtual Machine I…

Python 第三方库的安装与卸载全指南

在 Python 开发中&#xff0c;第三方库是提升效率的重要工具。无论是数据分析、Web 开发还是人工智能领域&#xff0c;都离不开丰富的第三方资源。本文将详细介绍 Python 第三方库的安装与卸载方法&#xff0c;帮助开发者轻松管理依赖环境。 一、第三方库安装方法 1. pip 工具…

RabbitMQ 高级特性之消息分发

1. 为什么要消息分发当 broker 拥有多个消费者时&#xff0c;就会将消息分发给不同的消费者&#xff0c;消费者之间的消息不会重复&#xff0c;RabbitMQ 默认的消息分发机制是轮询&#xff0c;但会无论消费者是否发送了 ack&#xff0c;broker 都会继续发送消息至消费者&#x…

Linux操作系统从入门到实战:怎么查看,删除,更新本地的软件镜像源

Linux操作系统从入门到实战&#xff1a;怎么查看&#xff0c;删除&#xff0c;更新本地的软件镜像源前言一、 查看当前镜像源二、删除当前镜像源三、更新镜像源四、验证前言 我的Linux版本是CentOS 9 stream本篇博客我们来讲解怎么查看&#xff0c;删除&#xff0c;更新国内本…

两台电脑通过网线直连形成局域网,共享一台wifi网络实现上网

文章目录一、背景二、实现方式1、电脑A&#xff08;主&#xff09;2、电脑B3、防火墙4、验证三、踩坑1、有时候B上不了网一、背景 两台windows电脑A和B&#xff0c;想通过**微软无界鼠标&#xff08;Mouse without Borders&#xff09;**实现一套键盘鼠标控制两台电脑&#xf…

Java Reference类及其实现类深度解析:原理、源码与性能优化实践

1. 引言&#xff1a;Java引用机制的核心地位在JVM内存管理体系中&#xff0c;Java的四种引用类型&#xff08;强、软、弱、虚&#xff09;构成了一个精巧的内存控制工具箱。它们不仅决定了对象的生命周期&#xff0c;还为缓存设计、资源释放和内存泄漏排查提供了基础设施支持。…