使用所有数据保存docker Mongo容器并将其导出

时间:2017-11-28 16:52:02

标签: mongodb docker docker-machine

我创建了一个包含Mongo容器的泊坞窗图像。

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

我希望能够将其中的所有数据导出(例如tar文件),并导入到另一个docker-machine而不会丢失任何数据。

使用docker save时,我无法找到有关保存数据的法规信息......

保存完整功能容器并将其导入另一个泊坞机的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

导出容器:

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

这会将您的容器导出到container.tar,可以使用以下方法将其导回到另一台计算机上:

docker import container.tar <container-name>.

然而,如docker export docs中所述:

  

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

现在,mongo将/data/db/data/configdb公开为卷。因此它们不会与焦油球一起出口。因此数据和配置不会出现在tar中:(

VOLUME /data/db /data/configdb

要获取此数据,您需要执行以下操作之一:

  1. How to port data-only volumes from one host to another?

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

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

  3. 将这些文件夹复制到新主机,然后导入tarred容器,最后将这些文件夹复制回容器

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

答案 1 :(得分:0)

要查看docker save的状态,您需要使用--output ex:。 docker save --output imagename&gt; imagename.tar。你不能保存容器只能保存图像。为了保存容器数据,您需要提交n从已提交容器启动