如何在具有多个Docker容器的设置中备份MongoDB?

我有一个应用程序被拆分成多个Docker容器:

  • 容器1包含一个MongoDB数据库
  • 容器2包含一个python脚本,每天执行一些操作,并使用pymongo将结果存储在容器1的MongoDB中。

以前使用Docker,即在同一台机器上安装MongoDB和python应用程序,我可以在日常脚本完成后立即使用mongoexport来备份数据库。 但是,在Docker设置中,我无法在Container 2中使用mongoexport,因为未安装MongoDB,即命令未知。

从我的angular度来看,唯一的select是使用容器1中的cronjob运行脚本,该脚本在预设时间执行备份。 但是,我更喜欢容器2触发备份的解决scheme,因为每日脚本的运行时间可能有很大差异。

在此先感谢您的任何build议!

您可以在这里下载docker 2表单上的mongodb二进制文件。 这样你可以摆脱the command is unknown

您可以使用mongoexport从运行在container 1上的mongodb中导出mongodb集合,或者使用--host--port选项从container 2使用mongodump转储。

注意: mongoexport不会从集合中导出索引。