Docker之数据卷:容器数据存储管理

容器使用的是分层文件系统,性能较差,生命周期和容器相同,并且不方便变更。当我们改变数据时,需要进入容器内部去更改。这样就会非常不方便。下面来学习Docker数据卷管理:


Docker数据卷特点:

1.mount到主机中,绕开分层文件系统
2.和主机磁盘性能相同,容器删除后仍然保留
3.仅限本地磁盘,不能随容器迁移


两种方式:

bind mount
docker managed volume

bind mount:

将宿主机上的目录或文件mount到容器中,使用-v指定路径。

示例:

 docker run -d --name web -v /opt/web:/usr/local/nginx/htnl nginx
 #冒号前为宿主机目录或文件,冒号后为容器内部目录或目录。
 #即将宿主机的/opt/web/这个目录挂载到容器内部/usr/local/nginx/html中,在该目录写东西,相当于在容器内对应目录写东西
 #默认挂载权限为读写,可以-o设置为只读
 #-v指定的路径不存在的话,在挂载时会自动创建

在这里插入图片描述
bind mount必须指定host文件系统路径,限制了移植性。就像mount命令必须有从哪【from】挂载到哪【to】

且bind mount方式挂载的是系统容器而不是应用的话,是不会产生数据卷的

docker managed volume:

不需要指定mount源,docker自动为容器创建数据卷目录。
默认创建的数据卷都在/var/lib/docker/volumes中
如果挂载时指向容器内已有的目录,原有数据会被复制到volume中。

在这里插入图片描述

使用docker insepct 容器名查看容器信息

在这里插入图片描述

两种方式的区别:

在这里插入图片描述


卷插件:

在这里插入图片描述

Docker Plugin 是以Web Service的服务运行在每一台Docker
Host上的,通过HTTP协议传输RPC风格的JSON数据完成通信。

Plugin的启动和停止,并不归Docker管理,Docker
Daemon依靠在缺省路径下查找Unix Socket文件,自动发现可用的插件。

当客户端与Daemon交互,使用插件创建数据卷时,Daemon会在后端找到插件对应的 socket文件,建立连接并发起相应的API请求,最终结合Daemon自身的处理完成客户端的请求。

convoy 卷插件

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

 主服务器:
 yum install -y nfs-utils
 systemctl start rpcbind
 mkdir /mnt/nfs
 vim /etc/exports
 systemctl start nfs
 showmount -e 

在这里插入图片描述

次服务器:

 yum install -y nfs-utils
 systemctl start rpcbind
 mkdir /mnt/nfs
 systemctl start nfs
 showmount -e 172.25.12.1

在这里插入图片描述

这样nfs就搭建完成了。挂载以后就可以实现文件共享。

下面完成convoy的配置和启动docker指定数据卷即可。

在server1:
将convoy中的二进制文件添加到环境变量,然后在/etc/docker/下创建plugins目录【会在其中导入.sock文件】,后台指定nfs挂载目录,创建数据卷,运行容器并指定使用的数据卷。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试:
在server1上的docker容器中创建文件,在server2共享出去被挂载的目录中能看到建立的文件。
在这里插入图片描述

在这里插入图片描述

如果是要用于两个容器为负载均衡的话,即容器是相同功能,彼此存储都会共享,只需要在server2也配置convoy,并运行容器,指定相同的数据卷即存储位置即可。因为nfs将目录共享了。


                大大的小小阳
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值