Docker中的MongoDB-容器关闭时备份数据库

Docker中的MongoDB-容器关闭时备份数据库,mongodb,docker,docker-compose,Mongodb,Docker,Docker Compose,我正在尝试使用Node和MongoDB设置docker compose。结合官方的Mongo容器,我将使用一个专用容器()对数据库进行连续备份,并在启动时进行初始恢复 我的问题是如何在docker compose stop正常关机的情况下触发备份 因此,首先必须关闭节点容器,以确保没有进程写入数据库。然后备份数据库,最后关闭mongodb和mongodb备份控制器 这包含我的docker compose mongodb和mongodb备份设置 有人知道如何实现吗?您可以为这种情况编写一个小的维护

我正在尝试使用Node和MongoDB设置docker compose。结合官方的Mongo容器,我将使用一个专用容器()对数据库进行连续备份,并在启动时进行初始恢复

我的问题是如何在docker compose stop正常关机的情况下触发备份

因此,首先必须关闭节点容器,以确保没有进程写入数据库。然后备份数据库,最后关闭mongodb和mongodb备份控制器

这包含我的docker compose mongodb和mongodb备份设置


有人知道如何实现吗?

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

#/垃圾箱/垃圾箱
docker撰写停止应用程序
docker compose stop mongo backup#确保只有一个处于活动状态
docker compose run--rm-e INIT_BACKUP=1#手动执行备份
docker compose stop mongo#停止数据库

我对你的问题不是100%清楚。你的意思是,在mongo容器出错后,如何从备份中恢复数据?不,恢复是由mongodb备份容器处理的。我想在关闭mongodb容器之前备份(转储)数据库。我想您这样做是为了在mongodb容器出错的情况下不丢失数据。因此,唯一的方法是安排每天或每小时的备份。您如何知道下次mongodb容器何时关闭?仅用于计划性维护。这是您的情况吗?计划备份已实施。例如,我现在的用例是维护。因此,我想自动保存最新数据,以防出现计划中的
docker compose stop
。好的,现在我很清楚您想做什么。也许你想更新你上面的问题,以便尽快从社区得到答案。下层选民至少可以有礼貌地留下评论吗?如果有问题,我很乐意调整我的答案。