Docker(七)--Docker数据卷管理及插件

本文详细介绍了Docker数据卷的管理,包括bindmount和docker管理卷的使用,强调了数据持久化的重要性。同时,探讨了如何通过卷插件实现跨节点存储,以实现数据在不同Docker主机间的同步,确保容器销毁后数据仍然可用。实验中使用了convoy卷插件,并以NFS为例展示了跨节点数据同步的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Docker 数据卷管理

在实际使用过程中,我们需要把容器和数据进行隔离,因为容器在使用过程中可能随时要进行销毁,但是数据要保留下来,所以我们要做数据的持久化。

  • 为什么要用数据卷
    • docker分层文件系统
      • 性能差
      • 生命周期与容器相同
  • docker数据卷
    • mount到主机中,绕开分层文件系统
    • 和主机磁盘性能相同,容器删除后依然保留
    • 仅限本地磁盘,不能随容器迁移
  • docker提供了两种卷:
    • bind mount
    • docker managed volume

1.1 bind mount

  • bind mount
    • 是将主机上的目录或文件mount到容器里。
    • 使用直观高效,易于理解。
    • 使用 -v 选项指定路径,格式 <host path>:<container path> 

在做实验之前先把不用的资源删掉:

 创建容器并创建文件:

 

 可以看到持久化到本机的目录中了。如果存在则直接挂载,如果不存在则创建。可以看到某些镜像已经写好了将数据存入哪里,那我们在创建容器的时候就必须写这个路径。

如果我们只是想把数据挂接到容器内,而不是要对数据进行增改:

 可以看到即可以对一个目录进行设置只读,也可以只对一个文件设置只读。

1.2  docker managed volume

  •  docker managed volume
    • bind mount必须指定host文件系统路径,限制了移植性。
    • docker managed volume 不需要指定mount源,docker自动为容器创建数据卷目录。
    • 默认创建的数据卷目录都在 /var/lib/docker/volumes 中。
    • 如果挂载时指向容器内已有的目录,原有数据会被复制到volume中。

即只有在镜像构建时有VOLUME参数,使用 docker managed volume 创建容器时才会做持久化,不然不会作持久化的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值