我创建了一个包含Mongo容器的泊坞窗图像。
我的数据库充满了最高35 GB的数据。
我希望能够将其中的所有数据导出(例如tar文件),并导入到另一个docker-machine而不会丢失任何数据。
使用docker save时,我无法找到有关保存数据的法规信息......
保存完整功能容器并将其导入另一个泊坞机的最佳方法是什么?
答案 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
要获取此数据,您需要执行以下操作之一:
手动将这些文件夹形式复制到容器内,并在从tar导入时将其复制回新容器。
docker cp:/ data / db ./data docker cp:/ data / configdb ./config
将这些文件夹复制到新主机,然后导入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从已提交容器启动