实验环境:虚拟机server1 server2
<1>两台主机安装并配置NFS
[root@server1 ~]# yum install -y nfs-utils
[root@server2 ~]# yum install -y nfs-utils
确保以下程序处于运行状态:
server1配置:
[root@server1 ~]# mkdir /mnt/nfs ##新建共享目录
[root@server1 ~]# vim /etc/exports
/mnt/nfs *(rw,no_root_squash) ##设置所有用户对该共享目录可读写 no_root_squash参数表示登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限
[root@server1 ~]# systemctl start nfs
[root@server1 ~]# showmount -e 172.25.81.1
server2配置:
[root@server2 ~]# mkdir /mnt/nfs
[root@server2 ~]# mount 172.25.81.1:/mnt/nfs /mnt/nfs ##客户端挂载共享目录
[root@server2 ~]# cd /mnt/nfs/
[root@server2 nfs]# touch file1 ##测试:客户端172.25.81.2访问目录并建立文件,可写
在服务端共享目录下面查看客户端创建的文件:
<2>两台主机安装convoy
server1配置:
[root@server1 ~]# tar zxf convoy.tar.gz
[root@server1 ~]# cd convoy
[root@server1 convoy]# cp convoy* /usr/local/bin/
[root@server1 ~]# mkdir /etc/docker/plugins
[root@server1 ~]# echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec
server2配置:
[root@server2 ~]# tar zxf convoy.tar.gz
[root@server2 ~]# cd convoy
[root@server2 convoy]# cp convoy* /usr/local/bin/
[root@server2 convoy]# mkdir /etc/docker/plugins
[root@server2 convoy]# echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec
<3>启动Convoy守护进程
[root@server1 ~]# convoy daemon --drivers vfs --driver-opts vfs.path=/mnt/nfs &> /dev/null &
[1] 2278[root@server2 ~]# convoy daemon --drivers vfs --driver-opts vfs.path=/mnt/nfs &> /dev/null &
[1] 2947
第一次运行上面的convoy daemon命令的时候,会在共享目录下生成一个config文件夹,这个文件夹不要删除,不然客户端的convoy命令就会用不了
<4>操作卷
[root@server1 ~]# convoy create vol1 ##创建convoy卷实例
[root@server1 ~]# convoy list ##查询卷
在共享目录内会自动生成一个同名文件夹,在这个卷同名的文件夹内创建文件等,等同于操作卷里面的内容。
[root@server1 nfs]# docker run -it --name vm1 -v vol1:/data ubuntu ##使用卷
root@631a3ae9b273:/# cd /data/
root@631a3ae9b273:/data# touch file{1..10}
root@631a3ae9b273:/data# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
在server2的共享目录内进行查看:
[root@server1 nfs]# convoy delete vol1 ##删除卷