volume 生命周期管理 - 每天5分钟玩转 Docker 容器技术(44)

Data Volume 中存放的是重要的应用数据,如何管理 volume 对应用至关重要。前面我们主要关注的是 volume 的创建、共享和使用,本节将讨论如何备份、恢复、迁移和销毁 volume。

备份

因为 volume 实际上是 host 文件系统中的目录和文件,所以 volume 的备份实际上是对文件系统的备份。

还记得前面我们是如何搭建本地 Registry 的吗?

95.png

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

恢复

volume 的恢复也很简单,如果数据损坏了,直接用之前备份的数据拷贝到 /myregistry 就可以了。

迁移

如果我们想使用更新版本的 Registry,这就涉及到数据迁移,方法是:

  1. docker stop 当前 Registry 容器。

  2. 启动新版本容器并 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 进行维护。请看下面的例子:

容器 bbox 使用的 docker managed volume 可以通过 docker volume ls 查看到。

删除 bbox:

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

如果想批量删除孤儿 volume,可以执行:

 

docker volume rm $(docker volume ls -q)

小结

本章我们学习了以下内容:

  1. docker 为容器提供了两种存储资源:数据层和 Data Volume。

  2. 数据层包括镜像层和容器层,由 storage driver 管理。

  3. Data Volume 有两种类型:bind mount 和 docker managed volume。

  4. bind mount 可实现容器与 host 之间,容器与容器之间共享数据。

  5. volume container 是一种具有更好移植性的容器间数据共享方案,特别是 data-packed volume container。

  6. 最后我们学习了如何备份、恢复、迁移和销毁 Data Volume。

不知大家发现没有,这章我们学习的只是单个 docker host 中的存储方案。而跨主机存储也是一个重要的主题,当然也更复杂,我们会在容器进阶技术章节详细讨论。

下一节我们便开始进阶知识部分的学习,首先讨论如何高效管理多个 Docker 主机。
 

二维码+指纹.png

转载于:https://my.oschina.net/u/2397560/blog/1476759

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker容器技术是一种轻量级的虚拟化技术,可以快速搭建和部署应用程序。每天花5分钟玩转Docker容器技术,可以充分利用碎片化的时间,提高工作和学习效率。 首先,我们需要了解Docker容器技术的基本概念和原理。可以每天读取Docker容器的相关书籍或者阅读官方文档,逐步掌握其中的关键概念和技术细节。 接下来,在学习过程中,可以每天尝试使用Docker命令行工具来进行实践。比如,运行一个简单的Hello World容器,下载一个Docker镜像并在容器中运行一个简单的应用程序等。通过实际操作,可以更好地理解Docker容器技术的工作原理。 此外,深入学习Docker容器技术的最好方式之一是参与项目实战。可以每天尝试运行一些具有挑战性的容器化项目,比如部署一个多容器的Web应用程序,搭建一个容器化的开发环境等。通过实际的项目实践,可以更加深入地掌握和应用Docker容器技术。 另外,要善于利用网络资源,比如每天浏览相关的Docker容器技术博客、论坛或者社区,了解最新的技术发展和应用案例。可以关注Docker官方博客或者加入Docker用户社区,与其他Docker技术爱好者交流学习经验。 最后,坚持每天花5分钟玩转Docker容器技术,持之以恒。通过每天的实践和学习,逐渐提升自己的技术能力,深入理解和运用Docker容器技术,为个人的工作和学习带来便利和提升。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值