【打工日常】使用docker部署在线PDF工具

news2024/11/16 10:45:25

一、Stirling-PDF介绍

Stirling-PDF是一款功能强大的本地托管的基于 Web 的 PDF 操作工具,使用 docker部署。该自托管 Web 应用程序最初是由ChatGPT全权制作的,现已发展到包含广泛的功能来处理您的所有 PDF 需求。允许对 PDF 文件执行各种操作,例如拆分、合并、转换、重组、添加图像、旋转、压缩等。。

二、本次实践介绍

1.本次实践简介

本次实践部署环境为个人测试环境

2.本地环境规划

本次实践环境规划:docker快速拉取docker-ui镜像,然后后台启动docker-ui镜像

镜像命名IP地址容器镜像版本操作系统版本
pdflocalhostlatestubuntu 22.04

三、检查本地Docker环境

1.检查本地Docker版本

检查Docker版本:docker version

root@WellDone:/home/goodjob# docker version
Client: Docker Engine - Community
 Version:           25.0.0
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        e758fe5
 Built:             Thu Jan 18 17:09:49 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          25.0.0
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       615dfdf
  Built:            Thu Jan 18 17:09:49 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.27
  GitCommit:        a1496014c916f9e62104b33d1bb5bd03b0858e59
 runc:
  Version:          1.1.11
  GitCommit:        v1.1.11-0-g4bccb38
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
root@WellDone:/home/goodjob# 

2.检查Docker服务状态

检查Docker服务状态,确保Docker服务正常运行。

systemctl status docker

root@WellDone:/home/goodjob/Downloads# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-01-24 08:54:31 CST; 1 day 4h ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1549 (dockerd)
      Tasks: 65
     Memory: 419.5M
        CPU: 38.874s
     CGroup: /system.slice/docker.service
             ├─  1549 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
             ├─  2010 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 6379 -container-ip 172.17.0.2 -container-port 6379
             ├─  2016 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 6379 -container-ip 172.17.0.2 -container-port 6379
             ├─  2029 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 5432 -container-ip 172.17.0.3 -container-port 5432
             ├─  2036 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 5432 -container-ip 172.17.0.3 -container-port 5432
             ├─123083 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8888 -container-ip 172.17.0.4 -container-port 8080
             └─123095 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8888 -container-ip 172.17.0.4 -container-port 8080

1月 24 08:54:31 WellDone dockerd[1549]: time="2024-01-24T08:54:31.067895045+08:00" level=info msg="API listen on /run/docker.sock"
1月 24 08:54:31 WellDone systemd[1]: Started Docker Application Container Engine.
1月 24 16:13:48 WellDone dockerd[1549]: time="2024-01-24T16:13:48.185008219+08:00" level=info msg="ignoring event" container=8ad99af82d8a41dd661d>
1月 24 16:13:48 WellDone dockerd[1549]: time="2024-01-24T16:13:48.189484205+08:00" level=warning msg="ShouldRestart failed, container will not be>
1月 24 21:58:08 WellDone dockerd[1549]: time="2024-01-24T21:58:08.024915139+08:00" level=info msg="ignoring event" container=27fd28e2993f31b170b8>
1月 24 21:58:08 WellDone dockerd[1549]: time="2024-01-24T21:58:08.029986730+08:00" level=warning msg="ShouldRestart failed, container will not be>
1月 25 10:46:16 WellDone dockerd[1549]: time="2024-01-25T10:46:16.329180722+08:00" level=info msg="Container failed to exit within 10s of signal >
1月 25 10:46:16 WellDone dockerd[1549]: time="2024-01-25T10:46:16.350757439+08:00" level=info msg="ignoring event" container=b1223add00f36bbb3246>
1月 25 10:49:21 WellDone dockerd[1549]: time="2024-01-25T10:49:21.993755983+08:00" level=info msg="Container failed to exit within 10s of signal >
1月 25 10:49:22 WellDone dockerd[1549]: time="2024-01-25T10:49:22.015822650+08:00" level=info msg="ignoring event" container=edb0e153b45dbe62acd8>
lines 1-28/28 (END)

四、部署Stirling-PDF镜像

1.下载Stirling-PDF镜像

docker pull registry.cn-guangzhou.aliyuncs.com/welldene/docker:pdf

root@WellDone:/home/goodjob# docker pull registry.cn-guangzhou.aliyuncs.com/welldene/docker:pdf
cc1ee397d0db: Pulling from welldene/docker
f56be85fc22e: Pull complete 
2ce963c369bc: Pull complete 
59b9d2200e63: Pull complete 
3e1e579c95fe: Pull complete 
547a97583f72: Pull complete 
1f21f983520d: Pull complete 
c23b4f8cf279: Pull complete 
474309a46f42: Pull complete 
af64c5430238: Pull complete 
7b75d6dbb9f1: Pull complete 
c778446d5628: Pull complete 
Digest: sha256:265037f4d46050d0bee8b0601b617f74537a518c543f55d3b3c724c63c792c6d
Status: Downloaded newer image for registry.cn-guangzhou.aliyuncs.com/welldene/docker:pdf
registry.cn-guangzhou.aliyuncs.com/welldene/docker:pdf

root@WellDone:/home/goodjob# docker images
registry.cn-guangzhou.aliyuncs.com/welldene/docker   pdf             cc1ee397d0db   11 days ago     1.4GB

2.创建容器

使用docker快速创建Stirling-PDF的容器。

完整创建过程:

1.使用docker-cli启动一个Stirling-PDF的容器。

docker run -d --name pdf 
-v /opt/pdf/trainingData:/usr/share/tesseract-ocr/5/tessdata
-v /opt/pdf/extraConfigs:/configs
-v /opt/pdflogs:/logs
-e DOCKER_ENABLE_SECURITY=false
-p 18181:8080 registry.cn-guangzhou.aliyuncs.com/welldene/docker:pdf

2.使用docker-compose启动一个Stirling-PDF的容器

version: '3.9'
services:
    welldene:
        image: 'registry.cn-guangzhou.aliyuncs.com/welldene/docker:pdf'
        ports:
            - '18181:8080'
        environment:
            - DOCKER_ENABLE_SECURITY=false
        volumes:
            - '/opt/pdflogs:/logs'
            - '/opt/pdf/extraConfigs:/configs'
            - '/opt/pdf/trainingData:/usr/share/tesseract-ocr/5/tessdata'
        container_name: pdf



3.容器启动正常,访问
http://ip:18181

​​​3. 检查容器运行状态

检查容器的运行状态,确保服务的正常运行。

docker ps

root@WellDone:/home/goodjob# docker ps
CONTAINER ID   IMAGE                                                       COMMAND                   CREATED         STATUS         PORTS                                       NAMES
pdf             registry.cn-guangzhou.aliyuncs.com/welldene/docker:pdf             "tini -- /scripts/in…"   pdf             6 seconds ago   Up 5 seconds   0.0.0.0:18181->8080/tcp, :::18181->8080/tcp

五、访问Stirling-PDF页面

访问Stirling-PDF首页 访问地址:http://localhost:18181

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

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

相关文章

最详细的Nginx安装【自测可用】

1.Nginx介绍 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非…

2024年【A特种设备相关管理(电梯)】考试总结及A特种设备相关管理(电梯)证考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年A特种设备相关管理(电梯)考试总结为正在备考A特种设备相关管理(电梯)操作证的学员准备的理论考试专题,每个月更新的A特种设备相关管理(电梯…

centos7 安装 docker-compose

1、直接参考官方: Install Compose standalone | Docker Docs 1、安装命令 curl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose 2、修改 docker-compose 执行权限 不修改执行权…

JavaScript高级程序设计

前言 《JavaScript高级程序设计》 第1章——什么是JavaScript DOM将整个页面抽象为一组分层节点。 BOM用于支持访问和操作浏览器的窗口。 第2章——HTML中的JavaScript 2.1 < script >元素 元素描述async立即开始下载脚本&#xff0c;但不能阻止其他页面动作&#…

力扣2月最后三天的每日一题

力扣2月最后三天的每日一题 前言2867.统计树中的合法路径数目思路确定1e5中的质数统计每个点的连接情况开始对质数点进行处理完整代码 2673.使二叉树所有路径值相等的最小代价思路完整代码 2581.统计可能的树根数目思路建立连通关系将猜测数组变为哈希表&#xff0c;方便查询利…

RTF文件格式解析(二)图像问题

图片 一个RTF文件可以包含由其他应用创建的图象。这些图象可以是16进制(默认的)或2进制格式。图象属于目标引用&#xff0c;由\pict 控制字开始。如后面的例子中将描述的&#xff0c;\pict关键字应在\*\shppict引用控制关键字之后。一个图象引用具有如下语法&#xff1a; <p…

CSP-201912-2-回收站选址

CSP-201912-2-回收站选址 【50分思路-暴力枚举】 #include <iostream> #include <vector> #include <algorithm> using namespace std; struct trashPoint {int x; int y; }; vector<trashPoint>trashList; vector<int>grade(5); int main…

MySQL:使用聚合函数查询

提醒&#xff1a; 设定下面的语句是在数据库名为 db_book里执行的。 创建t_grade表 USE db_book; CREATE TABLE t_grade(id INT,stuName VARCHAR(20),course VARCHAR(40),score INT );为t_grade表里添加多条数据 INSERT INTO t_grade(id,stuName,course,score)VALUES(1,测试0…

1.QT简介(介绍、安装,项目创建等)

1. QT介绍 Qt&#xff08;官方发音 [kju:t]&#xff09;是一个跨平台的C开发库&#xff0c;主要用来开发图形用户界面&#xff08;Graphical User Interface&#xff0c;GUI&#xff09;程序 Qt 是纯 C 开发的&#xff0c;正常情况下需要先学习C语言、然后在学习C然后才能使用…

JS reduce() 附使用详解

reduce() 方法对数组中的每个元素执行自己提供的回调函数(依次执行)&#xff0c;将其结果汇总为单个返回值。 文章目录 前言一、reduce()是什么&#xff1f;二、使用步骤1.语法2.实例解析 initialValue 参数3.注意事项4.应用情况 三、总结 前言 reduce()方法可以搞定的东西特别…

使用MindOpt时常见的报错,以及对应的解决方法

本篇描述的license问题均为云鉴权的方式 执行 mindopt -c检查许可证的配置&#xff08;license文件&#xff09; 许可证过期 示例&#xff1a; 解决方法&#xff1a; 在控制台中续费即可 并发不够&#xff08;409&#xff09;&#xff0c;以及两个 WARN提示 示例&#xff1…

【前端素材】推荐优质在线高端蜂蜜商城电商网页Beejar平台模板(附源码)

一、需求分析 1、系统定义 在线高端蜂蜜商城是指一个专门销售高品质、高端蜂蜜产品的电子商务平台。这种商城致力于向消费者提供各种经过精心挑选、具有高营养价值和健康功效的蜂蜜产品。 2、功能需求 在线高端蜂蜜商城是指一个专门销售高品质、高端蜂蜜产品的电子商务平台…

没有项目经历,该如何写简历?

没有项目经历&#xff0c;我该如何写简历 一、前言二、挖掘自己三、看现成的项目经验&#xff0c;转化成自己的语言1、硬件方面2、软件方面 四、最后 一、前言 相信有很多刚出来找工作的人会遇到这种情况&#xff0c;因为自身没有项目经历&#xff0c;投了很多的简历都石沉大海…

小甲鱼Python07 函数初级

一、创建和调用函数 pass语句表示一个空的代码块&#xff0c;我们经常先写好函数&#xff0c;pass占一个坑&#xff0c;等规划好之后再来填坑。 函数也是可以指定参数的&#xff0c;我们会把参数传进去用来替代形参。 在Python里如果想要返回值&#xff0c;不需要指定函数的返…

Redis 【1】—— 安装 与 配置

Redis 【1】—— 安装 与 配置 一、安装 与 配置&#xff08;一&#xff09;使用 yum 安装&#xff08;二&#xff09;创建符号链接1. 软链接2. 相关指令 &#xff08;三&#xff09;修改配置文件&#xff08;四&#xff09;Redis 的启停 一、安装 与 配置 &#xff08;一&…

【leetcode】反转链表

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 方法1 .将箭头方向逆转方法2. 点击查看题目 方法1 .将箭头方向逆转 思路&#xff1a; n1,n2,n3分别指…

Topaz Video AI:一键提升视频品质,智能重塑影像魅力 mac/win版

Topaz Video AI是一款革命性的视频智能处理软件&#xff0c;它利用先进的机器学习和人工智能技术&#xff0c;为视频创作者提供了前所未有的视频增强和修复功能。无论您是专业视频编辑师、摄影师&#xff0c;还是热爱视频创作的爱好者&#xff0c;Topaz Video AI都能帮助您轻松…

大数据分析案例-基于SVM支持向量机算法构建手机价格分类预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

React富文本编辑器开发(三)

现在我们的编辑器显示的内容很单一&#xff0c;这自然不是我们的目标&#xff0c;让呈现的内容多元化是我们的追求。这就需要让编辑器能够接收多元素的定义。从初始数据的定义我们可以推断数据的格式远不止一种&#xff0c;那么其它类型的数据如何定义及呈现的呢&#xff0c;我…

【 C++ 】智能指针

1、内存泄漏 什么是内存泄漏&#xff0c;内存泄漏的危害 什么是内存泄漏&#xff1a; 内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失&#xff0c;而是应用程序分配某段内存后&#xff0c;因为设计错误&#xff0c…