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是否损坏- 是否跨了 不兼容大版本


796

被折叠的 条评论
为什么被折叠?



