是否可以备份正在运行的泊坞容器? 是export
命令适合做吗?
Answer 1:
张贴在评论一个朋友
嗨斯拉瓦,对不起,你的问题是封闭的。 为了记录在案,斯拉瓦在谈论docker.io,对于Linux容器运行时。 是的, docker export
是一个合适的方法。 它会生成整个容器的文件系统状态的压缩包,并倾倒在标准输出上。 所以
docker export $CONTAINER_ID > $CONTAINER_ID-backup.tar
将产生一个可用的压缩包。 您可以重新导入该压缩包用
docker import - slava/$CONTAINER_ID-backup < $CONTAINER_ID-backup.tar
注意原来的元数据(如原始图像的ID)都将丢失。 这应该是固定在码头工人的未来版本。 - 所罗门Hykes 4月2日'13 6:35
添加这里这么一个可以从问题得到回答总结发现。 由于所罗门!
Answer 2:
export
有一定的局限性:它不会导出的数据量 。
这里的数据量是指:
- 有一个
VOLUME
在图像的Dockerfile定义。 - 该容器开始像这样的参数:
-v /webapp
更多数据: https://docs.docker.com/userguide/dockervolumes/
处理这种情况的方法是开始一个新的容器“--volumes-从 ”参数来钩住容器上,这样你就可以访问的数据量。
例子:
- 访问数据:(在bash)
docker run -it --volumes-from target_container ubuntu bash
- 备份到主机:(一个postgres容器)
docker run -it --volumes-from some_postgres -v /host/path:/container/path --rm ubuntu bash -c "tar -cvf /container/path/postgres-backup.tar /var/lib/postgresql/data"
Answer 3:
使用docker commit
是我的备份容器(启动或停止)首选方式。 创建一个可命名的图像:
docker commit - p <container_id> <backup-name>
Answer 4:
您也可以使用保存和加载..这里的样本
sudo docker images
awan@google-dev:~/StarCenter/_docker$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE google_star/_version_1.10 latest 1067d6689697b2 4 days ago 1.666 GB
sudo docker save google_star/_version_1.10 > my_docker-backup.tgz
使用恢复它(
sudo docker load < my_docker-backup.tgz
)检查使用您的图像
sudo docker images
在新的泊坞窗机