备份运行的泊坞容器?(Backup a running Docker container?)

2019-08-18 05:09发布

是否可以备份正在运行的泊坞容器? 是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有一定的局限性:它不会导出的数据量

这里的数据量是指:

  1. 有一个VOLUME在图像的Dockerfile定义。
  2. 该容器开始像这样的参数: -v /webapp

更多数据: https://docs.docker.com/userguide/dockervolumes/

处理这种情况的方法是开始一个新的容器“--volumes-从 ”参数来钩住容器上,这样你就可以访问的数据量。

例子:

  1. 访问数据:(在bash)

docker run -it --volumes-from target_container ubuntu bash

  1. 备份到主机:(一个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:

您也可以使用保存和加载..这里的样本

  1. 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 
  2. sudo docker save google_star/_version_1.10 > my_docker-backup.tgz

  3. 使用恢复它( sudo docker load < my_docker-backup.tgz

  4. 检查使用您的图像sudo docker images在新的泊坞窗机



文章来源: Backup a running Docker container?