数据持久化配置

容器重建不丢数据 —— 这一步千万别跳过

血泪教训

😱 升级容器后数据全没了?

你满心欢喜地升级了容器镜像,重启之后发现 —— 配置没了,数据没了,之前改的所有东西全部归零。这不是 bug,这是 Docker 的正常行为:容器是临时的,删掉就啥都不剩。你不做持久化,它就不帮你存。

解决方案

✅ Docker Volume Mapping 一招搞定

用 Docker volume mapping 把容器内的重要目录映射到宿主机的物理路径上。容器随便删、随便重建,只要映射路径里的文件还在,数据就不会丢。这是 Docker 最基本也最重要的操作,没有之一。

四步搞定持久化

1

创建目录结构

在 NAS 上创建好数据目录。目录结构清晰,后面备份迁移都方便。建议按功能分成 data、config、logs、memory 四个子目录。

2

映射卷到容器

在 docker-compose.yml 或者 Docker 管理界面里,把宿主机目录映射到容器内对应的路径。映射之后容器写入的数据实际上就存在 NAS 硬盘上了。

3

设置定时备份

虽然数据已经在 NAS 上了,但 RAID 保护不了你手滑删文件。写个简单的备份脚本,配合 cron 定时跑,多一层保险。

4

验证恢复流程

别光备份不测试。把容器删掉重建一次,确认数据还在、配置还生效、服务能正常启动。等到真出事的时候再发现备份是坏的就晚了。

Volume 映射示例

下面是推荐的目录结构和映射方式,适用于群晖、威联通、Unraid 等所有 NAS:

docker-compose.yml 卷映射
services:
  openclaw:
    image: openclaw/openclaw:latest
    volumes:
      # 应用数据(对话记录、用户数据等)
      - /path/to/nas/openclaw/data:/app/data

      # 配置文件(API Key、模型设置等)
      - /path/to/nas/openclaw/config:/app/config

      # 日志文件(排查问题用)
      - /path/to/nas/openclaw/logs:/app/logs

      # 记忆存储(Agent 的长期记忆)
      - /path/to/nas/openclaw/memory:/app/memory

# 各 NAS 的实际路径:
# 群晖: /volume1/docker/openclaw/
# 威联通: /share/Container/openclaw/
# Unraid: /mnt/user/appdata/openclaw/

自动备份脚本

写个脚本,每天自动打包一份备份。保留最近 7 天的,自动清理旧的:

备份脚本
#!/bin/bash
# OpenClaw 自动备份脚本

BACKUP_DIR="/volume1/backups/openclaw"
DATA_DIR="/volume1/docker/openclaw"
DATE=$(date +%Y%m%d_%H%M%S)

# 创建备份目录
mkdir -p "$BACKUP_DIR"

# 打包数据
tar -czf "$BACKUP_DIR/openclaw_$DATE.tar.gz" \
  -C "$DATA_DIR" data config memory

# 清理 7 天前的旧备份
find "$BACKUP_DIR" -name "openclaw_*.tar.gz" -mtime +7 -delete

echo "Backup completed: openclaw_$DATE.tar.gz"

定时任务配置

把备份脚本加到 cron 里,每天凌晨 3 点自动执行:

crontab 定时备份
# 编辑 crontab
crontab -e

# 添加这一行(每天凌晨 3 点执行备份)
0 3 * * * /volume1/docker/openclaw/backup.sh >> /volume1/docker/openclaw/logs/backup.log 2>&1

# 群晖也可以用 DSM 的"任务计划"功能
# 控制面板 → 任务计划 → 新增 → 用户自定义脚本
# 把备份命令填进去,设好每天执行时间就行
⚠️ RAID 不是备份!RAID 保护你的数据不因为单块硬盘挂掉而丢失,但它保护不了你误删文件、ransomware 加密、NAS 主板烧了、家里遭贼这些情况。真正的备份策略是 3-2-1:3 份数据、2 种介质、1 份异地。至少把备份文件同步到一个云盘或者另一台设备上。

进阶备份方案

如果你对数据安全要求更高,可以看看进阶备份教程,里面讲了增量备份、加密备份、云端同步等方案:

👉 进阶备份与灾难恢复

不想自己管数据备份?MOLILI 的托管方案自带自动备份和数据恢复功能,省心。 了解 MOLILI →
这篇教程对你有帮助吗?