如何在具有多个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
不会从集合中导出索引。