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

标签 mongodb docker docker-compose

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

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

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

有人知道如何实现吗?

最佳答案

您可以为这种情况编写一个小型维护脚本。您可以直接运行此脚本,而不是执行原始 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

关于Docker 中的 MongoDB - 容器关闭时的备份数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40530730/

相关文章:

docker - MockServer:模拟外部http/https响应会拒绝80/443上的连接

php - 如何查看 mongo 中删除的记录?

mongodb - MongoDB 可以为单个服务器生成多少个唯一 ID?

python-3.x - aiodocker 异步创建容器

linux - 如何将一个 docker 卷上的文件解压缩到另一个?

windows - 如何在Windows中为Docker容器设置静态IP地址?

MongoDB:数组字段中不同值的总数

java - 使用 MongoTemplate 和 Spring Data MongoDB 进行复杂查询

amazon-web-services - ECR 中的 Docker 图像标记

ruby - Rails:在任何源中都找不到 concurrent-ruby-1.0.5 (Bundler::GemNotFound)