docker-review4:数据卷管理

1. 简介

  • mount到主机中,绕开分层文件系统,在容器删除后,文件体统依旧能保留
  • docker李通了两种卷,bind mount和docker managed volume

1.1 bind mount

bind mount比较直观,默认权限时rw, 是将主机上的目录或文件mount到容器里,直观高效,易于理解,迁移差,使用时命令如:docker run -it --rm -v /data1:/data1 -v /data2:/data2:ro -v /etc/yum.repos.d/dvd.repo:/mnt/dvd.repo:ro busybox,前面为本机目录,接着为容器内目录,最后可以指定容器对于挂载目录的权限,ro为只读
请添加图片描述

1.2 docker managed volume

  • bind mount必须指定host文件系统路径,限制了移植性
  • docker manager volume不需要指定mount源,docker自动为容器创建数据卷目录。
  • 默认创建的数据卷目录在/var/lib/docker/volumes中
  • 如果在挂载时指向容器内已有的目录,原有数据会被复制到volume中
    首先创建一个挂载卷:docker volume create registry
    启动容器时指定:docker run -d --name regidtry -v registry:/var/lib/registry registry
    请添加图片描述

1.3 对比

请添加图片描述

2. 镜像的保存和分享

docker save webserver:latest -o webserver.tar
此时即可分享给其他服务器:scp webserver.tar server2:
导入镜像:docker load -i webserver.tar

3. 卷插件简介

3.1 简介

  • docker卷默认使用的是local类型的驱动,只能存在宿主机,跨主机的volume就需要使用第三方的驱动
  • docker官方只提供了卷插件的api,开发者可以根据实际需求定制卷插件驱动
    请添加图片描述

3.2 docker plugin

  • docker plugin是以web service的服务运行在每一台docker host上的,通过http协议传输rpc风格的json数据完成通信
  • plugin的启动和停止,并不归docker管理,docker daemon依靠在缺省路径下查找unix socket文件,自动发现可用的插件
  • 当客户端与daemon交互,使用插件创建数据卷时,daemon会在后端找到插件对应socker文件,建立连接并发起相应的api请求,最后结合daemon自身的处理完成客户端的请求
  • 官方插件地址
    请添加图片描述

3.3 官方插件示例:convoy

convoy卷插件实现

  • 支持3种运行方式:devicemapper,NFS,EBS
  • 以下实验使用nfs方式
  • 下载软件:https://github.com/rancher/convoy/releases/download/v0.5.2/convoy.tar.gz
  • 在所有节点提前挂载nfs储存

在server上通过nfs共享目录:
yum install -y nfs-utils
请添加图片描述

systemctl enable --now nfs
请添加图片描述

mkdir /nfsdata
chmod 777 /nfsdata/

在server2上
yum install -y nfs-utils
查看server1上可挂载的文件夹:showmount -e 172.25.38.1
请添加图片描述
在server2上建立nfs挂载目录,并挂载:mkdir /nfsdata; mount 172.25.38.1:/nfsdata /nfsdata
此时,完成了两台服务器上的文件同步
配置convoy:
github上下载convoy

tar zxf convoy.tar.gz
cd convoy/
mv convoy* /usr/local/bin/
mkdir -p /etc/docker/plugins/			#docker引擎会检索该目录下的卷插件
convoy daemon --drivers vfs --driver-opts vfs.path=/nfsdata &
echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec

在server1上同样操作

convoy create vol1
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值