【Docker项目实战】使用Docker部署Koodo Reader电子书阅读器
- 一、Koodo Reader介绍
- 1.1 Koodo Reader简介
- 1.2 Koodo Reader主要特点
- 二、本次实践规划
- 2.1 本地环境规划
- 2.2 本次实践介绍
- 三、本地环境检查
- 3.1 检查Docker服务状态
- 3.2 检查Docker版本
- 3.3 检查docker compose 版本
- 四、拉取Koodo Reader镜像
- 五、部署Koodo Reader服务
- 5.1 创建部署目录
- 5.2 编辑部署文件
- 5.3 创建Koodo Reader容器
- 5.4 查看Koodo Reader容器状态
- 5.5 检查容器运行日志
- 六、访问Koodo Reader服务
- 6.1 访问Koodo Reader首页
- 6.2 导入图书
- 6.3 客户端下载
- 七、总结
一、Koodo Reader介绍
1.1 Koodo Reader简介
Koodo Reader是一款现代开源电子书管理与阅读软件,支持跨平台同步与备份,兼容多种主流电子书格式,提供AI翻译、摘要、文本转语音等智能功能,适用于 Windows、macOS、Linux、Android、iOS 及 Web 端,帮助用户在任何设备上流畅阅读和管理个人图书库。
1.2 Koodo Reader主要特点
- 多格式支持:完整支持 EPUB、PDF、MOBI、AZW3、FB2、CBR/CBZ 等主流电子书格式。
- 跨平台兼容:可在 Windows、macOS、Linux、Android、iOS 以及网页端无缝使用。
- 云同步与备份:通过 OneDrive、Google Drive、MEGA、WebDAV 等云服务实现数据自动同步与备份。
- 便捷图书导入:直接从云盘或远程服务器批量导入电子书,无需本地中转。
- AI 智能翻译:集成 AI 翻译功能,实现整段或划词即时翻译,提升外文阅读体验。
- AI 词典查询:支持 AI 驱动的智能词典,提供精准释义与例句。
- AI 内容摘要:自动提取章节或全文核心内容,快速掌握书籍要点。
- 多种阅读布局:提供单栏、双栏与连续滚动三种阅读模式,适应不同书籍类型。
- 文本转语音:内置 TTS 功能,可将文字朗读出来,支持离线与在线发音引擎。
- 触屏友好设计:优化触控操作,支持手势翻页与触摸高亮,适合平板与触屏设备。
- 批量子目录导入:可一次性导入整个文件夹中的书籍,自动分类整理。
- 笔记与标注:支持添加书签、高亮、下划线及文本笔记,便于知识管理。
- 个性化排版设置:自由调整字体、字号、行距、段距、页边距与背景/文字颜色。
- 夜间模式与主题色:提供夜间阅读模式及多种主题颜色切换,保护视力。
- 富文本标注样式:支持对文本进行加粗、斜体、阴影等样式高亮标记。
- 开源免费:完全开源且永久免费,无广告、无追踪,保障用户隐私与自由。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
|---|---|---|---|---|
| jeven01 | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.3.3 | Koodo Reader |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Koodo Reader电子书阅读器。
三、本地环境检查
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 Mon2025-08-0410:10:52 UTC;30min ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID:860(dockerd)Tasks:10Memory:97.2M(peak:98.4M)CPU: 606ms CGroup: /system.slice/docker.service3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -vDocker version28.3.3, build 980b8563.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker -vDocker version28.3.3, build 980b856四、拉取Koodo Reader镜像
下载Koodo Reader容器镜像,如下所示
dockerpull ghcr.io/koodo-reader/koodo-reader:master五、部署Koodo Reader服务
5.1 创建部署目录
- 创建部署目录
mkdir-p/data/koodo/uploads&&cd/data/koodo/- 目录授权
chmod-R755/data/koodo/5.2 编辑部署文件
使用docker-cli方式部署,可参考以下命令:
dockerrun-d\--namekoodo-reader\-p8022:80\-p8023:8080\-eENABLE_HTTP_SERVER=false\-eSERVER_USERNAME=admin\-eSERVER_PASSWORD=admin123\-v/data/koodo/uploads:/app/uploads\ghcr.io/koodo-reader/koodo-reader:master在部署目录下,创建docker-compose.yaml文件,内容如下所示:
vimdocker-compose.yamlversion:'3.9'services:koodo-reader:image:'ghcr.io/koodo-reader/koodo-reader:master'volumes:-'/data/koodo/uploads:/app/uploads'environment:-SERVER_PASSWORD=admin123-SERVER_USERNAME=admin-ENABLE_HTTP_SERVER=falseports:-'8023:8080'-'8022:80'container_name:koodo-reader📦 Koodo Reader Docker 配置说明
🔧 环境变量(Environment Variables)
| 环境变量 | 默认值 | 说明 |
|---|---|---|
SERVER_USERNAME | admin | Web 服务登录的用户名,用于访问 Koodo Reader 的 Web 界面或数据源服务。建议修改为自定义安全用户名。 |
SERVER_PASSWORD | admin123 | Web 服务登录的密码,配合SERVER_USERNAME使用。建议设置为强密码以增强安全性。 |
ENABLE_HTTP_SERVER | false | 是否启用 HTTP 服务器(用于“数据源”功能)。设为true才能通过 Docker 同步书籍和数据。 |
💡提示:若要使用“Docker 数据源”功能(即从容器中读取书籍),必须将
ENABLE_HTTP_SERVER设置为true,并确保用户名和密码安全。
🌐 端口映射(Ports)
| 容器端口 | 主机端口 | 用途说明 |
|---|---|---|
8080 | 8023 | 数据源服务端口(Data Source API),用于同步书籍元数据和阅读进度。外部通过http://host:8023访问。 |
80 | 8022 | Web 版阅读器端口(前端界面),用户通过浏览器访问http://host:8022使用 Koodo Reader 的网页版。 |
⚠️注意:
- 默认情况下,数据源使用 8080,Web 前端使用 80。
- 如果你想更改数据源端口(如改为
8090),应修改为:- '8090:8080'。- 若要切换 Web 端口,修改
- '8022:80'中的主机端口即可(如改为8080:80)。
📁 挂载目录(Volumes)
| 宿主机路径 | 容器路径 | 作用说明 |
|---|---|---|
/data/koodo/uploads | /app/uploads | 存放用户上传的电子书文件、封面、备份等数据的持久化目录。重启容器后数据不会丢失。 |
✅建议:
- 将
/data/koodo/uploads替换为你实际希望存储书籍的本地路径,例如:/home/user/koodo-data:/app/uploads。- 确保该目录有读写权限,否则可能导致导入失败或同步异常。
5.3 创建Koodo Reader容器
执行以下命令,创建Koodo Reader容器。
dockercompose up-d5.4 查看Koodo Reader容器状态
检查Koodo Reader容器运行状态,确保Koodo Reader容器正常启动。
root@jeven:/data/koodo# docker compose psWARN[0000]/data/koodo/docker-compose.yaml: the attribute`version`is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS koodo-reader ghcr.io/koodo-reader/koodo-reader:master"/start.sh"koodo-reader11minutes ago Up11minutes443/tcp,2019/tcp,443/udp,0.0.0.0:8022->80/tcp,[::]:8022->80/tcp,0.0.0.0:8023->8080/tcp,[::]:8023->8080/tcp5.5 检查容器运行日志
检查容器运行日志,确保Koodo Reader服务正常运行。
dockercompose logs六、访问Koodo Reader服务
6.1 访问Koodo Reader首页
浏览器地址:
http://<个人的服务器IP>:8022,访问Koodo Reader的初始安装页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。
6.2 导入图书
点击“导入图书”选项,上传本地资料,如下所示:
在线浏览图书,效果如下:
6.3 客户端下载
官方Android 版本和IOS 版本等版本下载地址如下:
- Github地址:https://github.com/koodo-reader/koodo-reader/releases/
- 官网地址:https://koodoreader.com/zh
七、总结
通过本次实践,我们成功使用Docker部署了Koodo Reader电子书阅读器,搭建起一个支持多格式、跨平台的本地化阅读环境。该服务运行稳定,界面简洁,开发版本已具备完善的图书管理与阅读功能,个人使用完全够用。通过自托管方式部署,既能保护隐私,又能灵活管理电子书库,是个人数字阅读的理想解决方案。