Docker(十)--Docker数据卷--卷插件

1. 卷插件简介

- docker 卷默认使用的是local类型的驱动,只能存在宿主机,跨主机的volume就需要使用第三方的驱动,可以查看以下链接:
	https://docs.docker.com/engine/extend/legacy_plugins/#volume-plugins	 
- docker官方只提供了卷插件的api,开发者可以根据实际需求定制卷插件驱动。
	https://docs.docker.com/engine/extend/plugins_volume/#volume-plugin-protocol

- 	Docker Plugin 是以Web Service的服务运行在每一台Docker Host上的,
- 通过HTTP协议传输RPC风格的JSON数据完成通信。
- 
- 	Plugin的启动和停止,并不归Docker管理,Docker Daemon依靠在缺省路径下
- 查找Unix Socket文件,自动发现可用的插件。
- 
- 	当客户端与Daemon交互,使用插件创建数据卷时,Daemon会在后端找到插件对应
- 的 socket 文件,建立连接并发起相应的API请求,最终结合Daemon自身的处理
- 完成客户端的请求。

2. convoy卷插件

重点来了
重做convoy,需要把/var/lib/rancher/convoy目录下的内容清空

2.1 释放没用的volume、清理环境

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 convoy卷插件

2.2.1 安装nfs并测试挂载是否同步

##server1上的
[root@server1 ~]# yum install -t nfs-utils.x86_64 
[root@server1 ~]# vim /etc/exports
[root@server1 ~]# cat /etc/exports
/nfsdata	*(rw,no_root_squash)

[root@server1 ~]# systemctl enable --now nfs
[root@server1 ~]# showmount  -e 
Export list for server1:
/nfsdata *

[root@server1 ~]# mkdir /nfsdata
[root@server1 ~]# chmod 777 /nfsdata/
[root@server1 ~]# ll -d /nfsdata/
drwxrwxrwx 2 root root 6 Jan 27 16:46 /nfsdata/


## server2
[root@server2 ~]# showmount  -e 172.25.13.1
Export list for 172.25.13.1:
/nfsdata *
[root@server2 ~]# mkdir /nfsdata
[root@server2 ~]# mount 172.25.13.1:/nfsdata/ /nfsdata/
[root@server2 ~]# ll -d /nfsdata/
drwxrwxrwx 2 root root 6 Jan 27 16:46 /nfsdata/
[root@server2 ~]# cd /nfsdata/
[root@server2 nfsdata]# touch file1
[root@server2 nfsdata]# ls
file1

## server1上
[root@server1 ~]# cd /nfsdata/
[root@server1 nfsdata]# ls   ##显示server2上创建的file1
file1


server1上
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

server2上
在这里插入图片描述

测试
在这里插入图片描述

2.2.2 部署convoy

- convoy卷插件实现
	支持三种运行方式:devicemapper、NFS、EBS。
	以下实验使用nfs方式。
	下载软件:
	        https://github.com/rancher/convoy/releases/download/v0.5.0/
	        convoy.tar.gz
	在所有节点提前挂载NFS存储。

- convoy卷插件安装:
	yum install -y nfs-utils
	systemctl start rpcbind
	mkdir /mnt/nfs
	mount 172.25.13.1:/mnt/nfs /mnt/nfs
	tar zxf convoy.tar.gz
	cp convoy/convoy convoy/convoy-pdata_tools /usr/local/bin/
	mkdir -p /etc/docker/plugins/
	echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec  ##没有这个文件,表示convoy服务没有启动
	convoy daemon --drivers vfs --driver-opts vfs.path=/nfsdata &  ##这个目录自己定

- 创建卷:
	convoy create vol1
	自动生成数据目录:/nfsdata/vol1/	
- 使用卷:
	docker run -it --name demo -v vol1:/data --volume-driver=convoy ubuntu
	可以在两个主机上同时运行容器,会发现数据目录中的数据是同步的。

## 此处server1和server2操作步骤是一样的
[root@server1 ~]# tar zxf convoy.tar.gz 
[root@server1 ~]# cd convoy/
[root@server1 convoy]# ls   ##俩个sh文件
convoy  convoy-pdata_tools  SHA1SUMS
[root@server1 convoy]# mv convoy* /usr/local/bin/
[root@server1 convoy]# mkdir -p /etc/docker/plugins  ##创建卷目录
[root@server1 convoy]# cd /etc/docker/plugins
[root@server1 plugins]# ls
[root@server1 plugins]# echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec  ##写入sock文件
[root@server1 plugins]# convoy daemon --drivers vfs --driver-opts vfs.path=/nfsdata &

server1上
在这里插入图片描述
server2上
在这里插入图片描述

2.2.3 创建convoy卷】

[root@server1 ~]# convoy create vol1   ##创建卷
[root@server1 ~]# convoy list 

[root@server2 ~]# cd /nfsdata/
[root@server2 nfsdata]# ls
col1  config
[root@server2 nfsdata]# convoy list



在这里插入图片描述
在这里插入图片描述

2.2.4 测试

[root@server2 ~]# docker run -d --name demo -v vol1:/usr/share/nginx/html --volume-driver convoy  nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. convoy卷插件子命令

	convoy list		列出卷
	convoy delete		删除卷
	convoy snapshot create	创建快照
	convoy snapshot delete	删除快照
	convoy backup create		创建备份
	convoy create res1 --backup <url>		还原备份
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Studying!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值