Docker volume plugin
协议 :接收http请求, 返回json
/VolumeDriver.Create
/VolumeDriver.Remove
/VolumeDriver.Mount
/VolumeDriver.Path
/VolumeDriver.Unmount
/VolumeDriver.Get
/VolumeDriver.List
/VolumeDriver.Capabilities
convoy
https://github.com/lujiwen/convoy
安装准备:
Docker --version > 1.8
安装 https://github.com/rancher/convoy
wgethttps://github.com/rancher/convoy/releases/download/v0.4.3/convoy.tar.gz
tar xvf convoy.tar.gz
sudo cp convoy/convoy convoy/convoy-pdata_tools/usr/local/bin/
sudo mkdir -p /etc/docker/plugins/
sudo bash -c 'echo"unix:///var/run/convoy/convoy.sock" >/etc/docker/plugins/convoy.spec'
在convoy daemon 运行时
Convoy 结束运行时:
Convoy.scok 文件被删除
举例
使用文件后端的loopback设备测试convoy使用devicemapper
创建文件
truncate -s 100G data.vol 将文件指定100G
truncate -s 1G metadata.vol
sudo losetup /dev/loop5 data.vol
//loop 设备是一种伪设备,必须要和一个文件进行连接,可把文件虚拟成块设备,籍此来模拟整个文件系统
sudo losetup /dev/loop6 metadata.vol
使用convoy
启动convoydaemon
convoy daemon --drivers devicemapper --driver-optsdm.datadev=/dev/loop5 --driver-opts dm.metadatadev=/dev/loop6
启动一个容器并使用convoy为容器管理卷
为卷创建一个快照并保存
docker run -v res1:/res1 --volume-driver=convoy Ubuntu ls /res1/foo
支持的后端存储类型:convoy daemon --drivers 参数
· Device Mapper
· NFS
· EBS