通过nfs文件系统实现docker的数据同步

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
{}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值