You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Podman容器持久化数据备份最佳实践:Vaultwarden与Duplicati配置

备份Vaultwarden容器数据:Duplicati卷访问方案与最佳实践

两种方案对比

1. 同Pod共享卷

  • 优势:两个容器直接共享Pod内的卷,无需重复配置主机路径,配置相对集中。
  • 劣势:Pod内容器生命周期绑定,Vaultwarden重启会连带Duplicati重启;若备份为定时任务,Duplicati长期驻留Pod存在冗余;单独调整Duplicati的配置或版本会影响Vaultwarden的运行。

2. 独立容器重复映射主机卷

  • 优势:两个容器完全独立,各自管理生命周期,Duplicati可按需启动(比如定时任务模式)或长期运行,调整备份策略无需改动Vaultwarden的配置。
  • 劣势:需确保两个容器的主机卷映射路径完全一致,且要匹配运行权限(比如两者的UID/GID要兼容,避免出现文件访问权限报错)。

最佳实践:独立容器 + 重复映射主机卷

这是生产环境中更实用的方案,理由如下:

  • 解耦管理:Vaultwarden是密码服务,Duplicati是备份服务,分属不同功能域,独立管理更灵活。比如你可以单独升级Duplicati版本,或修改备份调度规则,完全不影响Vaultwarden的正常运行。
  • 权限匹配:确保两个容器的运行用户对主机卷有读写权限。比如Vaultwarden默认用UID 1000运行,Duplicati容器也可以指定--user 1000来对齐权限,避免备份时出现权限不足的问题。
  • Quadlet配置示例:
    Vaultwarden的Quadlet文件(vaultwarden.container):
    [Container]
    Name=vaultwarden
    Image=vaultwarden/server:latest
    Volume=/host/path/vaultwarden-data:/data
    User=1000:1000
    
    Duplicati的Quadlet文件(duplicati.container):
    [Container]
    Name=duplicati
    Image=linuxserver/duplicati:latest
    Volume=/host/path/vaultwarden-data:/source/vaultwarden
    Volume=/host/path/duplicati-config:/config
    User=1000:1000
    Environment=DUPLICATI__WEB__LISTEN_ADDRESS=0.0.0.0:8200
    
    把Vaultwarden的主机卷映射到Duplicati的/source/vaultwarden路径,方便在Duplicati后台选择备份源。
  • 备份关键注意事项:
    • SQLite文件在写入状态下直接备份容易损坏,建议先给Vaultwarden发送SIGUSR1信号生成数据库快照:
      podman exec vaultwarden kill -SIGUSR1 1
      
      等待3-5秒后再执行备份,此时Duplicati备份的是快照文件(/data/db.sqlite3.tmp),能保证数据完整性。
    • 可以给Duplicati配置定时任务,自动执行“触发快照+备份”的流程。

内容的提问来源于stack exchange,提问作者Chumpy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:15:05