V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wayne3602
V2EX  ›  问与答

各位是如何管理和备份服务器上的 docker 数据的?

  •  
  •   wayne3602 · 2023-04-17 22:58:13 +08:00 · 1903 次点击
    这是一个创建于 587 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自从脱离了宝塔面板,感觉一身轻(个人感受+服务器感受)
    以后搭建所有的 web 应用都采用 Docker ,必备的 Docker 我觉得是 nginx-proxy-manager ,用来做反代和申请 ssl 证书真的很好用
    不过难免有一天服务器会发生故障

    • 个人操作导致
    • 服务器受到攻击

    或者由于各种原因需要迁移服务器
    这个时候数据备份就显得尤为重要,备份的前提是管理好映射在本地的数据,各位都是如何管理和备份 Docker 数据的呢?(仅指部署在服务器上的 Docker 数据)

    10 条回复    2023-04-18 19:26:57 +08:00
    ksc010
        1
    ksc010  
       2023-04-17 23:18:37 +08:00
    如果你是用 docker-composer 管理 docker 容器的话
    把 docker-composer 文件放入到单独的文件夹就行了,简单的配置文件比如证书什么的 一块放到这个文件夹
    网站项目源码,以及存储的文件,可以单独一个目录
    docker-composer 里面做好 volume 的映射即可
    然后根据文件夹按需备份
    Yourshell
        2
    Yourshell  
       2023-04-17 23:35:18 +08:00
    再起一个 rclone 容器
    wdwwtzy
        3
    wdwwtzy  
       2023-04-18 00:15:11 +08:00
    nginx-proxy-manager 学习了,不错
    yjim
        4
    yjim  
       2023-04-18 00:25:13 +08:00
    docker 容器的创建命令保存一份

    写脚本 用 crontab 每天定时执行如下操作

    1. 导出数据库 为 sql 文件到指定目录,然后压缩所有 sql 文件为一个压缩包
    2. 备份各 docker 容器挂载目录中的配置文件( config / env / setting ,如果有的话)到指定目录。
    3. 检查指定目录下各备份文件的时间,删除超过一定时间的备份

    一个配置一个数据,对于我个人的服务来说这俩保存好就没问题了。

    然后 nas 每天会自动登录服务器增量同步指定目录下的备份。
    cdyrhh
        5
    cdyrhh  
       2023-04-18 00:55:42 +08:00 via iPhone
    用的是 docker-compose 管理,一个文件夹对应一个服务,所有有关的配置数据什么的都在里面,然后用 dumplicati 定时备份到 od 和 gd
    shuxhan
        6
    shuxhan  
       2023-04-18 08:26:50 +08:00 via Android
    @ksc010 我跟你一样,按照业务建立文件夹 docker-composer 文件放在文件夹中,数据映射到同级目录,所有业务文件夹都放在 data 下,只用备份这个文件就行
    dann73580
        7
    dann73580  
       2023-04-18 12:09:13 +08:00
    把 docker compose 扔到容器的 data 文件夹同级的地方,每天滚动备份,完事~
    wayne3602
        8
    wayne3602  
    OP
       2023-04-18 16:13:07 +08:00
    @ksc010 请问兄弟用过 ttrss 吗?我一修改它的 database.postgres:的挂载位置,就会出现异常,我是将`- ~/postgres/data/:/var/lib/postgresql/data`修改为`- ./postgres/data/:/var/lib/postgresql/data`
    wayne3602
        9
    wayne3602  
    OP
       2023-04-18 16:14:50 +08:00
    @cdyrhh 目前我也是采用的这种方式,但是我不知道为什么 ttrss 的挂载位置一修改就出现错误,我是将`- ~/postgres/data/:/var/lib/postgresql/data`修改为`- ./postgres/data/:/var/lib/postgresql/data`,目前只能按默认位置,即根目录了
    ksc010
        10
    ksc010  
       2023-04-18 19:26:57 +08:00
    @wayne3602 什么异常?
    可以看下 docker 输出的日志,若更换映射目录才报错, 一般是权限问题(前提是不缺少文件)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2428 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:54 · PVG 23:54 · LAX 07:54 · JFK 10:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.