发布于 2026-01-06 0 阅读
0

🐳 使用 Docker 运行 mongodump 和 mongorestore 使用 Docker 使用 Docker Compose 由 Mux 呈现的 DEV 全球展示挑战赛:展示你的项目!

🐳 使用 Docker 执行 mongodump 和 mongorestore

使用 Docker

使用 Docker Compose

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

嗨!今天才知道怎么恢复和导出 MongoDB 容器。诀窍在于禁用伪终端分配。否则,备份文件会被添加额外的字符,导致 mongorestore 无法正常工作。

使用 Docker

使用 Docker 时,伪终端分配默认是禁用的,但恢复命令需要使用 -i(交互式)选项。

mongodump

  • 无授权:docker exec <mongodb container> sh -c 'mongodump --archive' > db.dump

  • 已验证:docker exec <mongodb container> sh -c 'mongodump --authenticationDatabase admin -u <user> -p <password> --db <database> --archive' > db.dump

mongorestore

  • 无授权:docker exec -i <mongodb container> sh -c 'mongorestore --archive' < db.dump

  • 已验证:docker exec -i <mongodb container> sh -c 'mongorestore --authenticationDatabase admin -u <user> -p <password> --db <database> --archive' < db.dump

使用 Docker Compose

使用 docker-compose 时,每次都需要使用 -T 参数显式地禁用伪终端分配:

mongodump

docker-compose exec -T <mongodb service> sh -c 'mongodump --archive' > db.dump

mongorestore

docker-compose exec -T <mongodb service> sh -c 'mongorestore --archive' < db.dump

就这些啦!✨🎉
现在,你可以随意编写脚本并将其添加到你的流程中了。

文章来源:https://dev.to/mkubdev/mongodump-and-mongorestore-with-docker-39m7