保存docker Mongo容器中的所有数据并导出

我创build了一个Mongo容器的docker图像。

我的数据库中充满了高达35 GB的数据。

我想能够导出它(例如tar文件)与所有的数据里面,并导入到另一个docker机,而不会丢失任何数据。

当使用docker保存时,我找不到有关保存数据的法规的任何信息…

什么是最好的方法来保存一个完整的函数容器,并将其导入到另一个docker机器?

要查看docker保存的状态,需要使用–output ex :. docker保存 – 输出imagename> imagename.tar。 你不能保存容器只能保存图像。 为了保存容器数据,你需要提交从提交的容器启动

导出容器:

docker export --output="container.tar" <container-name> 

这会将您的容器导出到container.tar,可以使用以下命令将其导入到另一台机器上:

 docker import container.tar <container-name>. 

但是 ,正如在docker出口文件中所述 :

docker export命令不会导出与容器关联的卷的内容。 如果将卷安装在容器中的现有目录之上,则docker export将导出基础目录的内容,而不是卷的内容。

现在mongo将/data/db/data/configdb为卷。 因此他们不会用焦油球出口。 因此,数据和configuration将不会在焦油:(

 VOLUME /data/db /data/configdb 

为了获得这些数据,你需要做的是:

  1. 如何将只有数据的卷从一台主机移植到另一台主机?

  2. 手动将这些文件夹forms复制到容器中,并在从tar导入时将其复制回新容器。

    docker cp:/ data / db ./data docker cp:/ data / configdb ./config

将这些文件夹复制到新主机,然后导入焦油容器,最后将这些文件夹复制回容器中

 docker cp data/* <new-container>:/data/db docker cp config/* <new-container>:/data/configdb