1.部署nfs
实验环境:
server1: 172.25.66.1 server
server2: 172.25.66.1 cleint
在server1上:
#1.安装nfs-utils
[root@server1 ~]# yum install -y nfs-utils
#2.查看rpcbind的状态,必须为开启状态
[root@server1 ~]# systemctl status rpcbind
#3.创建目录
[root@server1 ~]# mkdir /mnt/nfs
#4.以nfs方式共享目录
[root@server1 ~]# vim /etc/exports
#################
/mnt/nfs *(rw,no_root_squash) #root用户具有根目录的完全管理访问权限
#5.开启nfs服务
[root@server1 ~]# systemctl start nfs
#6.显示nfs服务器的输出目录列表
[root@server1 ~]# showmount -e 172.25.66.1
Export list for 172.25.66.1:
/mnt/nfs *
#7.更改权限
[root@server1 ~]# ll -d /mnt/nfs/
drwxr-xr-x 2 root root 18 Mar 21 19:55 /mnt/nfs/
[root@server1 ~]# chmod 777 /mnt/nfs/
[root@server1 ~]# ll -d /mnt/nfs/
drwxrwxrwx 2 root root 18 Mar 21 19:55 /mnt/nfs/
在server2上:
#1.安装nfs-utils
[root@server2 ~]# yum install -y nfs-utils
#2.查看rpcbind的状态,必须为开启状态
[root@server2 ~]# systemctl status rpcbind
#3.创建目录
[root@server2 ~]# mkdir /mnt/nfs
#4.挂载
[root@server2 ~]# mount 172.25.66.1:/mnt/nfs/ /mnt/nfs/
#5.查看挂载
[root@server2 ~]# df
测试:
#在客户端创建文件
[root@server2 ~]# cd /mnt/nfs/
[root@server2 nfs]# ls
[root@server2 nfs]# touch file
[root@server2 nfs]# ls
file
#发现数据同步到了服务端
[root@server1 ~]# cd /mnt/nfs/
[root@server1 nfs]# ls
file
2.安装部署convoy插件
在server1上:
安装包:
convoy.tar.gz
#1.解压
[root@server1 ~]# ls
convoy.tar.gz
[root@server1 ~]# tar zxf convoy.tar.gz
[root@server1 ~]# ls
convoy.tar.gz convoy
[root@server1 ~]# cd convoy
[root@server1 convoy]# ls
convoy convoy-pdata_tools SHA1SUMS
#2.拷贝
[root@server1 convoy]# cp convoy* /usr/local/bin/
[root@server1 convoy]# cd /usr/local/bin/
[root@server1 bin]# ls
convoy convoy-pdata_tools
[root@server1 bin]# cd /etc/docker/
[root@server1 docker]# ls
daemon.jso key.json
#3.创建目录
[root@server1 docker]# mkdir plugins
#4.启动convoy守护进程
[root@server1 docker]# convoy daemon --drivers vfs --driver-opts vfs.path=/mnt/nfs &> /dev/null &
[1] 9843
[root@server1 docker]# ps aux | grep convoy
[root@server1 docker]# cd /mnt/nfs/
[root@server1 nfs]# ls
config file
[root@server1 nfs]# rm -rf file
[root@server1 nfs]# ls
config
[root@server1 nfs]# cd /var/run/convoy/
[root@server1 convoy]# ls
convoy.sock
#5.设置docker卷插件
[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
[root@server1 plugins]# cat convoy.spec
unix:///var/run/convoy/convoy.sock
在server2上:(操作同server1)
安装包:
convoy.tar.gz
#1.解压
[root@server2 ~]# ls
convoy.tar.gz
[root@server2 ~]# tar zxf convoy.tar.gz
[root@server2 ~]# ls
convoy.tar.gz convoy
[root@server2 ~]# cd convoy
[root@server2 convoy]# ls
convoy convoy-pdata_tools SHA1SUMS
#2.拷贝
[root@server2 convoy]# cp convoy* /usr/local/bin/
[root@server2 convoy]# cd /usr/local/bin/
[root@server2 bin]# ls
convoy convoy-pdata_tools
[root@server2 bin]# cd /etc/docker/
[root@server2 docker]# ls
key.json
#3.创建目录
[root@server2 docker]# mkdir plugins
#4.启动convoy守护进程
[root@server2 docker]# convoy daemon --drivers vfs --driver-opts vfs.path=/mnt/nfs &> /dev/null &
[1] 2494
[root@server2 docker]# ps aux | grep convoy
#5.设置docker卷插件
[root@server2 docker]# ll /var/run/convoy/convoy.sock
srwxr-xr-x 1 root root 0 Mar 21 20:18 /var/run/convoy/convoy.sock
[root@server2 docker]# echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec
[root@server2 docker]# cat /etc/docker/plugins/convoy.spec
unix:///var/run/convoy/convoy.sock
3.创建convoy卷实例
[root@server1 ~]# convoy list
{}
#创建卷
[root@server1 ~]# convoy create vol1
vol1
#查看卷
[root@server1 ~]# convoy list
#在客户端也可以查看到
[root@server2 ~]# convoy list
4.使用卷
配置server1结点:
(1).下载并导入镜像
镜像:
ubuntu.tar
[root@server1 ~]# ls
ubuntu.tar
[root@server1 ~]# docker load -i ubuntu.tar
[root@server1 ~]# docker images ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 07c86167cdc4 3 years ago 188MB
(2).使用卷
[root@server1 ~]# cd /mnt/nfs/
[root@server1 nfs]# ls
config vol1
#使用卷,创建vm1容器
[root@server1 ~]# docker run -it --name vm1 -v vol1:/data ubuntu
root@983a1584ec0c:/# cd /data
root@983a1584ec0c:/data# ls
测试:
#在服务端创建文件
root@983a1584ec0c:/data# touch file{1..5}
root@983a1584ec0c:/data# ls
file1 file2 file3 file4 file5
#在客户端可查看到数据同步
[root@server2 ~]# cd /mnt/nfs/vol1/
[root@server2 vol1]# ls
file1 file2 file3 file4 file5
配置server2结点:
(1).下载并导入镜像
镜像:
ubuntu.tar
[root@server2 ~]# ls
ubuntu.tar
[root@server2 ~]# docker load -i ubuntu.tar
[root@server2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 07c86167cdc4 3 years ago 188MB
(2).使用卷
#使用卷,创建vm1容器
[root@server2 ~]# docker run -it --name vm1 -v vol1:/data ubuntu
root@bc75228beaca:/# cd data/
root@bc75228beaca:/data# ls
file1 file2 file3 file4 file5
测试:
#在客户端删除文件
root@bc75228beaca:/data# rm -rf *
root@bc75228beaca:/data# ls
root@bc75228beaca:/data# exit
exit
#在服务端发现数据同步
root@983a1584ec0c:/data# ls
root@983a1584ec0c:/data# exit
exit
5.删除卷
#1.删除容器
[root@server1 ~]# docker rm -f vm1
vm1
[root@server2 ~]# docker rm -f vm1
vm1
#2.删除卷
[root@server2 ~]# convoy delete vol1
[root@server2 ~]# convoy list
{}
[root@server1 ~]# convoy list
{}