Memos 数据迁移文档(Docker 环境)

Memos 数据迁移文档(Docker 环境)

目标说明

完全关闭服务器 / 停止 Memos 服务 的前提下,将 现有 Memos 备忘录数据 迁移到新环境或新服务器中,不丢失备忘录内容

✅ 本文档适用于:

  • Docker 或 Docker Compose 部署的 Memos
  • 图片等附件 已使用对象存储(S3 / OSS / COS 等)
  • 迁移 同一版本或兼容版本 的 Memos

一、迁移前说明(非常重要)

1. Memos 的核心数据在哪里?

对于 Docker 安装的 Memos,所有核心数据都在一个数据目录中,通常包含:

.thumbnail_cache #缩略图缓存
memos_prod.db #数据库文件
memos_prod.db-shm #数据库文件
memos_prod.db-wal #数据库文件

结论:只要数据目录完整,迁移就是成功的


2. 默认数据目录位置

Docker 示例

一般来说目录位置如下:

  • 宿主机数据目录:/opt/memos
  • 容器内数据目录:/var/opt/memos

或查看Docker镜像参数配置(寻找对应的本机目录)

请添加图片描述

真正要备份 / 迁移的是宿主机目录(本机目录)

二、迁移前准备

  • ✔ 使用对象存储保存图片(图片无需迁移)
  • ✔ 准备在新环境中使用同版本或相近版本
  • ✔ 停止 Memos(非必选)

三、旧环境:备份数据目录

1. 确认数据目录

docker inspect memos | grep -A 5 Mounts

找到类似内容:

"Source": "/opt/memos",
"Destination": "/var/opt/memos"

✅ 说明数据在 /opt/memos

2. 打包数据目录

tar -czvf memos-data-backup.tar.gz /opt/memos

✅ 这是 完整迁移所需的全部内容


四、新环境:恢复数据目录

1. 创建同版本 Memos 容器(不要启动)

⚠️ 必须保证 Memos 大版本一致
示例:

docker run -d \
  --name memos \
  -p 5230:5230 \
  -v /opt/memos:/var/opt/memos \
  neosmemo/memos:0.21.0

然后立刻停止它:

docker stop memos

✅ 这一步的目的:
创建正确的容器目录结构 & 权限


2. 删除新生成的数据目录

rm -rf /opt/memos/*

3. 解压旧数据到新目录

tar -xzvf memos-data-backup.tar.gz -C /

或如果是复制方式:

cp -r old_memos_data/* /opt/memos/

4. 修正目录权限(非常关键)

chown -R 1000:1000 /opt/memos

Memos 容器默认使用 UID 1000


五、启动并验证

docker start memos

访问:

http://服务器IP:5230

✅ 验证项:

  • 用户是否存在
  • 备忘录是否完整
  • 时间顺序是否正确
  • 对象存储图片是否可正常加载(URL 不变)

六、常见问题与排查

1. 启动后是全新 Memos?

✅ 原因排查:

  • 数据目录挂载路径错误
  • 解压到了错误位置
  • 权限不正确
  • 容器版本不一致

2. 页面白屏 / 报错?

docker logs memos

重点检查:

  • SQLite 文件是否存在
  • memos.db 是否损坏
  • 是否跨了 不兼容大版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值