设为首页 收藏本站
查看: 845|回复: 0

[经验分享] volume 生命周期管理

[复制链接]

尚未签到

发表于 2017-12-6 21:21:25 | 显示全部楼层 |阅读模式
  Data Volume 中存放的是重要的应用数据,如何管理 volume 对应用至关重要。前面我们主要关注的是 volume 的创建、共享和使用,本节将讨论如何备份、恢复、迁移和销毁 volume。
备份
  因为 volume 实际上是 host 文件系统中的目录和文件,所以 volume 的备份实际上是对文件系统的备份。
  还记得前面我们是如何搭建本地 Registry 的吗?
DSC0000.jpg

  所有的本地镜像都存在 host 的 /myregistry 目录中,我们要做的就是定期备份这个目录。

恢复
  volume 的恢复也很简单,如果数据损坏了,直接用之前备份的数据拷贝到 /myregistry 就可以了。
迁移
  如果我们想使用更新版本的 Registry,这就涉及到数据迁移,方法是:

  •   docker stop 当前 Registry 容器。
  •   启动新版本容器并 mount 原有 volume。
      
      docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:latest
  当然,在启用新容器前要确保新版本的默认数据路径是否发生变化。
销毁
  可以删除不再需要的 volume,但一定要确保知道自己正在做什么,volume 删除后数据是找不回来的。
  docker 不会销毁 bind mount,删除数据的工作只能由 host 负责。对于 docker managed volume,在执行 docker rm 删除容器时可以带上 -v 参数,docker 会将容器使用到的 volume 一并删除,但前提是没有其他容器 mount 该 volume,目的是保护数据,非常合理。
  如果删除容器时没有带 -v 呢?这样就会产生孤儿 volume,好在 docker 提供了 volume 子命令可以对 docker managed volume 进行维护。请看下面的例子:
DSC0001.jpg

  容器 bbox 使用的 docker managed volume 可以通过 docker volume ls 查看到。
  删除 bbox:
DSC0002.jpg

  因为没有使用 -v,volume 遗留了下来。对于这样的孤儿 volume,可以用 docker volume rm 删除:
DSC0003.jpg

  如果想批量删除孤儿 volume,可以执行:
  
  docker volume rm $(docker volume ls -q)
小结
  本章我们学习了以下内容:

  •   docker 为容器提供了两种存储资源:数据层和 Data Volume。
  •   数据层包括镜像层和容器层,由 storage driver 管理。
  •   Data Volume 有两种类型:bind mount 和 docker managed volume。
  •   bind mount 可实现容器与 host 之间,容器与容器之间共享数据。
  •   volume container 是一种具有更好移植性的容器间数据共享方案,特别是 data-packed volume container。
  •   最后我们学习了如何备份、恢复、迁移和销毁 Data Volume。
  不知大家发现没有,这章我们学习的只是单个 docker host 中的存储方案。而跨主机存储也是一个重要的主题,当然也更复杂,我们会在容器进阶技术章节详细讨论。
  下一节我们便开始进阶知识部分的学习,首先讨论如何高效管理多个 Docker 主机。


DSC0004.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421475-1-1.html 上篇帖子: docker (centOS 7) 使用笔记3 下篇帖子: Docker 后台进程参数-------更改Docker运行根目录的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表