【Docker项目实战】使用Docker部署PDF工具箱BentoPDF
一、BentoPDF介绍
1.1 BentoPDF
BentoPDF 是一款注重隐私、完全在客户端运行的 PDF 工具包,支持在浏览器中直接编辑、合并和处理 PDF 文件,无需上传至服务器,确保用户数据安全。它可自行托管,完全免费且开源。
1.2 BentoPDF主要特点
- 隐私优先:所有操作均在浏览器内完成,文件从不上传至任何服务器。
- 无使用限制:可无限次处理任意数量的 PDF 文件,无上传或功能限制。
- 高性能:基于现代 Web 技术构建,能快速高效地处理大型 PDF 文档。
- 完全免费:作为开源项目,BentoPDF 对所有人免费开放使用。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 | 备注 |
|---|---|---|---|---|---|
| jeven | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.5.0 | BentoPDF | —— |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署PDF工具箱BentoPDF。
三、本地环境检查
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 Sat 2025-10-04 13:29:05 UTC; 2 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 888 (dockerd)
Tasks: 65
Memory: 1.2G (peak: 1.4G)
CPU: 3min 23.296s
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
四、拉取BentoPDF镜像
下载BentoPDF镜像,镜像名称为:
bentopdf/bentopdf:v1.1.5
docker pull bentopdf/bentopdf:v1.1.5

五、部署BentoPDF服务
5.1 docker-cli方式部署(可选)
- 如果使用docker-cli方式部署,可参考以下命令:
docker run -d \
--name bentopdf \
--restart always \
-p 8560:8080 \
bentopdf/bentopdf:v1.1.5
5.2 docker compose方式部署
- 创建部署目录
mkdir -p /data/bentopdf && cd /data/bentopdf
新建及编辑docker-compose.yaml文件,宿主机映射端口可自行设置,注意防止端口冲突。
vim docker-compose.yaml
services:
bentopdf:
image: bentopdf/bentopdf:v1.1.5
container_name: bentopdf
restart: always
ports:
- '8560:8080'
5.3 创建BentoPDF容器
执行以下命令,创建BentoPDF容器。
docker compose up -d

5.4 查看BentoPDF容器状态
检查BentoPDF容器运行状态,确保BentoPDF容器正常启动。
root@jeven:/data/bentopdf# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
bentopdf bentopdf/bentopdf:v1.1.5 "/docker-entrypoint.…" bentopdf 4 seconds ago Up 3 seconds 0.0.0.0:8560->8080/tcp, [::]:8560->8080/tcp
5.5 检查BentoPDF容器日志
检查容器运行日志,确保BentoPDF服务正常运行。
docker compose logs

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

BentoPDF 功能概览
| 类别 | 功能 | 描述 |
|---|---|---|
| 合并与拆分 | Merge PDF | 将多个 PDF 文件合并成一个文件。 |
| Split PDF | 从一个 PDF 中提取指定页码范围,生成新的 PDF 文件。 | |
| Alternate & Mix Pages | 交替合并多个 PDF 的页面(例如,A1, B1, A2, B2…)。 | |
| Divide Pages | 将单个页面水平或垂直分割。 | |
| Combine to Single Page | 将所有页面拼接成一个纵向的长页面。 | |
| 组织与管理 | Duplicate & Organize | 复制、重新排序和删除页面。 |
| Delete Pages | 从文档中删除特定页面。 | |
| Add Blank Page | 在文档的任意位置插入空白页。 | |
| Reverse Pages | 反转文档中所有页面的顺序。 | |
| Rotate PDF | 将页面按 90 度为单位进行旋转。 | |
| N-Up PDF | 将多个页面(如 2x2)排列在一张纸上。 | |
| Organize PDF | 通过拖放方式重新排列页面。 | |
| Add Attachments | 将一个或多个文件嵌入到 PDF 中。 | |
| Extract Pages | 将选中的页面保存为新的文件。 | |
| Posterize PDF | 将一个大页面分割成多个小页面以适应打印。 | |
| 转换 | JPG to PDF, PNG to PDF, WebP to PDF, SVG to PDF, BMP to PDF, HEIC to PDF, TIFF to PDF | 将一种或多种图片格式转换为 PDF 文件。 |
| Image to PDF | 将各种图片格式合并成一个 PDF。 | |
| Text to PDF | 将纯文本文件转换为 PDF。 | |
| PDF to JPG, PDF to PNG, PDF to WebP, PDF to BMP, PDF to TIFF | 将 PDF 的每一页转换为对应的图片格式。 | |
| PDF to Greyscale | 将 PDF 的所有颜色转换为黑白(灰度)。 | |
| PDFs to ZIP | 将多个 PDF 文件打包成一个 ZIP 压缩包。 | |
| 编辑与注释 | PDF Editor | 综合性工具,用于注释、高亮、涂黑、评论、添加形状/图片、搜索和查看 PDF。 |
| Sign PDF | 通过手绘、输入文字或上传图片的方式为 PDF 添加签名。 | |
| Crop PDF | 裁剪 PDF 每一页的边距。 | |
| Page Numbers | 在文档中插入页码。 | |
| Add Watermark | 在 PDF 页面上叠加文字或图片水印。 | |
| Header & Footer | 在页面的顶部和底部添加文字。 | |
| Remove Annotations | 移除文档中的所有注释、高亮和链接。 | |
| PDF Form Filler | 在浏览器中直接填写表单。 | |
| Remove Blank Pages | 自动检测并删除文档中的空白页。 | |
| View Metadata | 查看 PDF 的隐藏属性(如作者、标题)。 | |
| Edit Metadata | 修改 PDF 的作者、标题等元数据。 | |
| Compare PDFs | 并排比较两个 PDF 文件的差异。 | |
| 优化与修复 | Compress PDF | 减小 PDF 文件的大小。 |
| Fix Page Size | 将所有页面统一为标准尺寸。 | |
| Linearize PDF | 优化 PDF 以实现网页快速加载(渐进式加载)。 | |
| Page Dimensions | 分析页面的尺寸、方向和单位。 | |
| Remove Restrictions | 移除由数字签名关联的密码保护和安全限制。 | |
| 安全 | Encrypt PDF | 通过添加密码来加密锁定 PDF。 |
| Decrypt PDF | 通过移除密码保护来解锁 PDF。 | |
| Sanitize PDF | 移除元数据、注释、脚本等隐藏信息。 | |
| Flatten PDF | 使表单域和注释变为不可编辑的普通内容。 | |
| Remove Metadata | 从 PDF 中剥离隐藏数据。 | |
| Change Permissions | 设置或更改用户对 PDF 的使用权限。 | |
| 视觉调整 | Invert Colors | 创建 PDF 的“深色模式”版本。 |
| Background Color | 更改 PDF 的背景颜色。 | |
| Change Text Color | 更改 PDF 中文本的颜色。 | |
| OCR PDF | 对扫描的 PDF 进行文字识别,使其可搜索和可复制。 |
七、总结
本次Docker项目实战成功地将BentoPDF工具箱部署到了本地环境,实现了在线PDF处理服务的快速搭建。通过Docker容器化技术,我们确保了应用环境的隔离性和一致性,简化了复杂的部署流程。实践验证了使用docker-compose进行多服务管理的便捷与高效。BentoPDF的成功部署为后续集成更多Web应用提供了可复用的模板和宝贵经验。
- 点赞
- 收藏
- 关注作者
评论(0)