【问题标题】:How to use mongodump command from Nodejs app container?如何从 Nodejs 应用程序容器中使用 mongodump 命令?
【发布时间】:2019-02-27 11:15:19
【问题描述】:

我有一个运行在 docker 容器中的 Node js 应用程序,该应用程序依赖于 mongo 容器,该容器使用来自 docker hub 的图像 mongo。我想做一个休息 API GET: download/db。当获取请求命中时,我希望它下载转储的数据库备份副本。

为此,我使用了shell命令

mongodump --host localhost --uri mongodb://localhost:27017/db_name --gzip --out /tmp/backup-007434030202704722

但它显示错误/bin/sh: mongodump: not found。我不知道这里有什么问题。可能是什么问题?

【问题讨论】:

    标签: node.js docker docker-compose mongodump


    【解决方案1】:

    我猜你是在 node 容器中运行这个 shell 命令,但 mongodump 不会成为 node 图像的一部分。

    您可能需要像这样修改您的 shell 命令:

    docker run -d --rm -v mongo-backup:/mongo-backup mongo mongodump --db db_name --gzip --out /mongo-backup/backup-007434030202704722

    如果您将mongo-backup 卷添加到您的Node JS 应用程序容器中,那么您可以在您的节点js 容器中看到这个备份文件。

    【讨论】:

      【解决方案2】:

      文档提到用户或角色需要允许“查找”操作,或使用“备份”角色: https://docs.mongodb.com/manual/reference/program/mongodump/#required-access

      通过 putty 或 SSH 登录到您的服务器 - root

      “备份”角色需要授予任何非管理员用户,但我设置的主管理员用户似乎不需要它,我可以使用以下内容:

      mongodump -u "admin" --authenticationDatabase "admin"

      这将提示输入密码,并且一旦您输入,就会在服务器中创建 BACKUP 转储...

      工作目录路径中有一个名为“dump”的新目录,看起来已将所有数据库转储到其中。这目前在 /root/dump/ 作为它包含的示例,更多使用该命令的示例可以在 https://docs.mongodb.com/manual/reference/program/mongodump/#mongodump-with-access-control 上查看

      如果您想单独进行备份,请使用以下过程:

      可以添加 --db 标志来指定一个或几个数据库,并且可以添加 --out 标志来指定输出目录,所以如果您想在特定目录中创建所有数据库的转储(例如 /backup/mongodumps)你会做如下的事情:

      mongodump -u "admin" --authenticationDatabase "admin" --out /backup/mongodumps/

      或者如果您只是想要一个数据库到一个特定的目录:

      mongodump -u "admin" --authenticationDatabase "admin" --db [DB name] --out /backup/mongodumps/

      https://docs.mongodb.com/manual/reference/program/mongodump/#mongodump-with-access-control 上还有其他示例,包括压缩转储,或将它们转储到单个存档中。

      附加信息:

      否则,如果您想以管理员以外的用户身份创建转储,则需要将“备份”角色授予其他用户。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-07
        相关资源
        最近更新 更多