一、备份 MongoDB

1.1 备份数据库

在 Mongodb 中我们使用 mongodump 命令来备份MongoDB数据。

docker exec -it mongotest_mongo_1 mongodump -h localhost -u root -p example -o /tmp/test

  • mongotest_mongo_1:容器名称;
  • -h: MongDB 所在服务器地址;
  • -u: 代表的是用户,此处是超级管理员;
  • -p: 表示密码;
  • -d: 需要备份的数据库。若没有该参数,则表示备份所有数据库;
  • -o: 备份后的数据要存放的位置;

注意:
此时备份数据目录 /tmp/test是在容器内部,还需将它拷贝出来。

1.2 拷贝备份内容

将容器内部的 /tmp/test目录复制到本地目录下。

docker cp 4de4f160569c:/tmp/test /tmp/test

  • docker cp: 用于容器与主机之间的数据拷贝。
  • 4de4f160569c: 容器ID;

二、恢复备份数据

在 Mongodb 中我们使用 mongorestore 命令来恢复备份的数据。

docker exec -it mongotest_mongo_1 mongorestore -h localhost -u root -p example —dir /tmp/test

  • -h : MongDB 服务所在的服务器地址;
  • --dir : 备份数据所在的的路径;

三、衍生知识

如何将宿主机上的 /tmp/test目录添加到镜像中?

  • 在宿主机上使用docker cp命令,将宿主机的目录拷贝到镜像中;
  • 将目录挂载到镜像上,通过 volumes 参数;