介绍
MongoDB 是一种流行的 NoSQL 数据库,广泛用于 web 应用程序和其他类型的软件开发中。Docker 是一种流行的容器技术,允许轻松地创建和管理虚拟化容器。将 MongoDB 部署到 Docker 容器中可以带来很多好处,如更好的可移植性和可扩展性。本文则将介绍如何在 Docker 容器中备份和恢复 MongoDB 数据。
备份 MongoDB 数据
MongoDB 在备份数据方面有很多不同的方法,如使用 mongodump 工具、备份阵列节点或使用副本集等。但在 Docker 容器中备份 MongoDB 数据时,使用 mongodump 工具是最常见的方法。
使用 mongodump 工具备份 MongoDB 数据
进入到 MongoDB 的 Docker 容器。可以使用以下命令进入:
docker exec -it [container_name] bash
在控制台中,使用以下命令备份 MongoDB 数据:
mongodump
此命令将备份 MongoDB 中的所有数据。如果需要备份指定的数据库或集合,可以使用以下命令:
mongodump --db [database_name] --collection [collection_name]
mongodump 会将数据以 BSON 文件的形式保存到容器中。可以使用以下命令将备份拷贝到宿主机器中:
docker cp [container_name]:/path/to/mongodump/backup/folder /path/on/host/machine
使用 Docker volume 备份 MongoDB 数据
使用 Docker volume 备份 MongoDB 数据可以比较容易地备份整个 MongoDB 数据库,并且可以确保数据的完整性。
创建一个 volume:
docker volume create mongo_data
运行 MongoDB 容器时,将 volume 挂载到容器的 /data/db 目录:
docker run -d --name mongo -v mongo_data:/data/db mongo
通过运行以下命令备份 volume 数据:
docker run --rm -v mongo_data:/volume -v /path/on/host/machine:/backup ubuntu tar czvf /backup/backup.tar.gz /volume
此命令会将 volume 中的数据打包成一个 gzip 文件,拷贝到宿主机器中。
恢复 MongoDB 数据
接下来将介绍如何恢复使用 mongodump 工具备份的 MongoDB 数据。
拷贝备份文件到 Docker 容器中,可以使用以下命令:
docker cp /path/on/host/machine/backup/folder [container_name]:/path/to/mongodump/backup/folder
进入 MongoDB 的 Docker 容器,并使用 mongorestore 命令恢复备份:
mongorestore /path/to/mongodump/backup/folder
此命令将恢复 MongoDB 中的所有备份数据。如果需要恢复指定的数据库或集合,可以使用以下命令:
mongorestore --nsInclude [database_name].[collection_name] /path/to/mongodump/backup/folder
也可以使用以下命令,将备份直接拷贝到容器中并恢复:
cat /path/on/host/machine/backup/folder/backupfile.bson | docker exec -i [container_name] mongorestore --nsFrom [database_name].[collection_name] --nsTo [database_name].[collection_name] -
结论
使用 Docker 容器备份和恢复 MongoDB 数据可以提高数据可移植性和可扩展性。mongodump 工具是备份 MongoDB 数据的最常见方式,使用 Docker volume 可以轻松地备份整个 MongoDB 数据库并保证数据的完整性。通过本文的介绍,相信读者对 MongoDB 在 Docker 容器中备份和恢复数据已经有了一定的了解。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675255508bd460d3ad92f945