将所有数据保存 docker Mongo 容器并导出
Save docker Mongo container with all the data and export it
我创建了一个 docker 图像,容器为 Mongo。
我的数据库充满了数据,最多 35 GB。
我希望能够导出它(例如 tar 文件),其中包含所有数据,并导入到另一台 docker-机器而不丢失任何数据。
使用docker保存时,我找不到任何关于保存数据状态的信息...
保存功能齐全的容器并将其导入另一台 docker 机器的最佳方法是什么?
要查看 docker 保存的状态,您需要使用 --output ex:。 docker 保存 --output imagename > imagename.tar。你不能保存容器只能保存图像。为了保存容器数据,您需要从提交的容器中提交 n 启动
导出容器:
docker export --output="container.tar" <container-name>
这会将您的容器导出到 container.tar,可以使用以下命令将其导回另一台机器:
docker import container.tar <container-name>.
不过,如docker export docs所述:
The docker export command does not export the contents of volumes
associated with the container. If a volume is mounted on top of an
existing directory in the container, docker export will export the
contents of the underlying directory, not the contents of the volume.
现在 mongo 将 /data/db
和 /data/configdb
公开为卷。因此它们不会与 tar 球一起导出。因此数据和配置不会在 tar :(
VOLUME /data/db /data/configdb
要获取此数据,您需要执行以下操作之一:
How to port data-only volumes from one host to another?
手动复制容器内的这些文件夹,并在从 tar.
导入时将它们复制回新容器
docker cp :/data/db ./数据
docker cp :/data/configdb ./config
将这些文件夹复制到新主机,然后导入tar红色容器,最后将这些文件夹复制回容器
docker cp data/* <new-container>:/data/db
docker cp config/* <new-container>:/data/configdb
我创建了一个 docker 图像,容器为 Mongo。
我的数据库充满了数据,最多 35 GB。
我希望能够导出它(例如 tar 文件),其中包含所有数据,并导入到另一台 docker-机器而不丢失任何数据。
使用docker保存时,我找不到任何关于保存数据状态的信息...
保存功能齐全的容器并将其导入另一台 docker 机器的最佳方法是什么?
要查看 docker 保存的状态,您需要使用 --output ex:。 docker 保存 --output imagename > imagename.tar。你不能保存容器只能保存图像。为了保存容器数据,您需要从提交的容器中提交 n 启动
导出容器:
docker export --output="container.tar" <container-name>
这会将您的容器导出到 container.tar,可以使用以下命令将其导回另一台机器:
docker import container.tar <container-name>.
不过,如docker export docs所述:
The docker export command does not export the contents of volumes associated with the container. If a volume is mounted on top of an existing directory in the container, docker export will export the contents of the underlying directory, not the contents of the volume.
现在 mongo 将 /data/db
和 /data/configdb
公开为卷。因此它们不会与 tar 球一起导出。因此数据和配置不会在 tar :(
VOLUME /data/db /data/configdb
要获取此数据,您需要执行以下操作之一:
How to port data-only volumes from one host to another?
手动复制容器内的这些文件夹,并在从 tar.
导入时将它们复制回新容器docker cp :/data/db ./数据 docker cp :/data/configdb ./config
将这些文件夹复制到新主机,然后导入tar红色容器,最后将这些文件夹复制回容器
docker cp data/* <new-container>:/data/db
docker cp config/* <new-container>:/data/configdb