【问题标题】:MongoDB in Docker - backup database on container shutdownDocker 中的 MongoDB - 容器关闭时的备份数据库
【发布时间】:2016-11-10 15:02:12
【问题描述】:

我正在尝试使用 Node 和 MongoDB 设置 docker-compose。结合官方 Mongo 容器,我使用专用容器 (mongodb-backup) 来持续备份数据库并在启动时进行初始恢复。

我的问题是如何在docker-compose stop 正常关机的情况下触发备份。
因此,首先需要关闭 Node 容器,以保证没有进程正在写入数据库。然后备份数据库,最后关闭 mongodb 和 mongodb-backup 容器。

repository 包含我的 docker-compose 设置的 mongodb 和 mongodb-backup。

有人知道如何实现吗?

【问题讨论】:

  • 您的问题对我来说不是 100% 清楚。你的意思是,在mongo容器搞砸后,如何从备份中恢复数据?
  • 不,恢复由 mongodb-backup 容器处理。我想在 mongodb 容器关闭之前备份(转储)数据库。
  • 我想你做备份是为了在 mongodb 容器搞砸的情况下不会丢失数据。因此,唯一的方法是安排每日或每小时备份。你怎么知道你的 mongodb 容器下次何时关闭?仅用于计划维护。这是你的情况吗?
  • 计划备份已实施。我现在的用例是维护。所以我想自动保存最新的数据以防有计划的docker-compose stop
  • 好的,现在我很清楚你想做什么了。您可能想更新上面的问题,以便尽快从社区获得答案。

标签: mongodb docker docker-compose


【解决方案1】:

您可以为这种情况编写一个小型维护脚本。而不是做一个原始的docker-compose stop,你可以直接运行这个脚本。我们称之为maintenance.sh:

#!/bin/sh
docker-compose stop app
docker-compose stop mongo-backup # ensure only one is active
docker-compose run --rm -e INIT_BACKUP=1 # do the backup manually
docker-compose stop mongo # stop the database

【讨论】:

  • 投反对票的人至少可以有礼貌地发表评论吗?如果有问题,我很乐意调整我的答案。
猜你喜欢
  • 2014-06-22
  • 2020-11-23
  • 2010-11-02
  • 1970-01-01
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多