首页 > 其他 > 详细

docker容器备份、恢复和迁移volume方案

时间:2017-01-25 00:08:24      阅读:317      评论:0      收藏:0      [点我收藏+]

    volume作为数据的载体,在很多情况下需要对其中的数据进行备份、迁移或是恢复。下面一docker容器的volume为例,说一下备份的技巧。

  我们先建立一个容器vol_simple,该容器在/date挂载了一个volume。

    $ sudo docker run -it --name vol_simple -v /data ubuntu /bin/bash

    如果我们需要将这里的数据备份,一个很容易想到的办法是使用docker inspect命令查找/date在宿主机上对应的文件夹位置,然后复制其中内容或是使用tar进行打包,同样如果需要恢复某个volume中的数据,可以查找到volume对应的文件夹,将数据复制进这个文件夹或者使用tar恢复。但这些笨拙的做法并不值得推荐,因为查找主机上文件夹后在再操作容易出错,也不适合脚本的自动化。

  备份volume可以使用一下方法。

    $ sudo docker run  --rm --vloumes-from vol_simple -v$(pwd):/backup ubuntu tar cvf /backup/data.tar /data 

    这个指令启动了一个临时的容器,这个容器挂载了两个volume,第一个volume与要备份的volume共享,第二个volume将宿主机的当前目录挂载到容器的/backup下。容器运行后将要备份的内容(/data文件夹)备份到/backup/data.tar,然后删除容器,备份后的data.tar就留在了当前目录。

  恢复volume方法:

    $ sudo docker run -it --name vol_bck -v /data ubuntu /bin/bash

    $ sudo docker run --rm --volumes-from vol_bck -v $(pwd):/backup ubuntu tar xvf /backup/data.tar -C /

   首先运行了一个新容器作为数据恢复的目标。第二行指令启动了一个临时容器,这个容器挂载了两个volume,第一个volume与要恢复的volume共享,第二个将宿主机的当前目录挂载到容器的/backup下。由于之前备份的data.tar在当前目录下,那么它在容器中的/backup也能访问到,容器启动后将这个存档文件中的/data恢复到跟目录下,然后删除容器,恢复后的数据在vol_bck的volume中了

本文出自 “kisszero” 博客,请务必保留此出处http://kisszero.blog.51cto.com/9395417/1894076

docker容器备份、恢复和迁移volume方案

原文:http://kisszero.blog.51cto.com/9395417/1894076

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!