紧急求助,Docker 疑似数据全部丢失

本贴最后更新于 277 天前,其中的信息可能已经斗转星移

先说一下情况:

  1. 使用 docker 部署,SiYuan 版本是 v2.1.10,部署时间是 2022/8,一直使用到 2024/2/17 日都没出现问题
  2. 2024/2/17 的时候还能使用,但是到了 2024/2/18 就进不去了,一进去就显示“内核断开,请等待 7 秒”
  3. 一开始以为只是普通问题,但是多刷新了几次页面,发现依然显示“内核断开,请等待 7 秒”,遂意识到不对劲
  4. 首先使用 docker logs siyuan 查看 log 中是否有错误,显示 determines whether [/root/Documents/SiYuan] is a directory failed: [lstat /root/Documents/SiYuan: permission denied],但是这个错误在以前就有,因此大概不属于 2/18 错误的原因。除此之外就没有别的错误
  5. 其次使用 docker restart siyuan 重启 siyuan 容器,无效
  6. 随后使用 docker-compose stopdocker-compose up -d 重启 siyuan 容器,依旧无效(中间修改了 docker compose 文件,但是只改了 auth 密码,其余没改)
  7. 此时意识到大事不妙,开始担心数据是否丢失了,首先检查的是 mount 目录,看看数据是否存在,发现数据不存在
  8. 使用 docker exec -it siyuan /bin/sh 进入 siyuan 容器,进入 /root/Documents/SiYuan 目录查看数据是否存在,依旧不存在
  9. 至此意识到大事不妙,怀疑数据可能因为本人的误操作导致全部丢失,来求各位大佬捞一捞,里面有我自 22 年开始就存的数据,数据非常多,而且非常重要,真的希望只是我找错地方了,而不是没找到。
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22351 引用 • 89432 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8118 引用 • 37026 回帖 • 160 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • muxue 4

    这个错误是因为 docker 内的思源是用 siyuan 用户启动的,并非 root 用户,没有 root 用户的执行权限。也就是说你的这个思源 docker 大概率从创建一开始就没有把数据写入你 mount 的路径中

    如果没有权限思源会采用另外一个默认的工作目录,你可以看看日志里面有没有 using default working directory 等字样,可以去看看默认工作路径下是否有本地文件。参考我之前在社区提出的这个问题,下面这两个日志应该是一起出现的 docker 部署遇到目录的权限问题

    W 2023/11/16 10:11:39 file.go:262: determines whether [/root/docker/siyuan] is a directory failed: [lstat /root/docker/siyuan: permission denied]
    W 2023/11/16 10:11:39 working.go:225: use the default workspace [/home/siyuan/SiYuan] since the specified workspace [/root/docker/siyuan] is not a dir
    

    如果日志类似上面这样,可以去 docker 内部的 /home/siyuan/SiYuan 目录中找你的本地文件,并尽快将其 docker cp 到宿主机上去。

    如果你映射的本地目录在最开始的时候是成功创建了文件且有正常更新,默认工作空间 /home/siyuan/SiYuan 内为空的话,那就不是我说的这个问题。

    另外,docker 本来也是个正常的思源客户端,为啥最开始的时候不配置一下 s3 同步呢?还有,不管有没有配置 S3 同步,都一定要记得定期导出 data,备份!备份!备份!

    1 回复
    1 操作
    muxue 在 2024-02-19 10:17:44 更新了该回帖
  • Martin12345
    作者

    我去查看了下日志,确实有你说的 use the default workspace 这条日志,但是 /home/siyuan/SiYuan 目录是空的,依旧没有任何数据。备份这事本来上周该做的,但是因为过年就给忘了,哎。

    1 回复
  • 那就蛋糕了,问问 D 大排查一下到底是啥原因导致数据丢失的吧……数据恢复感觉难搞。

  • 88250

    没有挂载数据卷的话数据就在容器中,如果容器被删了就丢失了。

    1 回复
  • Martin12345 1
    作者

    以前重启过容器,数据都没丢。我怀疑是步骤 6 中,修改了 docker-compose 然后重启导致旧的 docker 被覆盖,进而导致数据丢失。哎,我没想到的是数据没有被正确挂载,当初部署的时候还是草率了。

    1 回复
  • 88250 1 评论

    没有删除过的话容器应该还在,docker ps 看看。

    docker ps -a 看看有没有之前的思源容器
    muxue
  • 刚刚搜了一下,因为你修改了 cmd,所以 docker-compose up -d 的时候会覆盖原有容器,估计是 gg 了

    1 回复
  • Martin12345
    作者

    确认是没有了,现在只能靠记忆去恢复数据了。求问坛友有没有比较好的数据备份方案,不花钱的那种。😳

    1 回复
  • 可以试试用 rclone 备份数据到云盘

请输入回帖内容 ...

推荐标签 标签

  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 72 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 26 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 664 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    26 引用 • 84 回帖
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 40 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 364 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 18 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 407 回帖 • 488 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 529 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 334 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 9 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 471 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 4 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 1 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 654 关注
  • 电影

    这是一个不能说的秘密。

    120 引用 • 599 回帖
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 453 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 43 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 536 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 1 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 154 关注