Docker容器数据卷——bind mount数据卷、docker managed volume数据卷、convoy卷插件

本文介绍了Docker容器数据卷的概念、特点,详细讲解了bind mount数据卷和docker managed volume数据卷的使用,包括挂载、权限设置、数据共享和移植性。还探讨了Docker卷插件,特别是convoy插件,用于实现跨主机的容器数据共享,以及其在NFS存储下的应用实例。
摘要由CSDN通过智能技术生成

1.什么是Dokcer容器数据卷?

数据卷是一个或多个容器中专门指定的目录,它能够绕过联合文件系统
卷被设计用作数据持久化、并且是独立于容器的生命周期的
docker是一个分层文件系统,性能比较差,生命周期和容器是相同的,容器删除,里面的内容就没有了
数据卷是mount到宿主机上的,这就绕开了分层的文件系统,和主机的磁盘性能是相同的,而且容器删除后,文件会依然保留,但这个仅限于本地磁盘,不能随容器去迁移

当我们在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们关闭docker容器时是会消失的
docker官方提供两种卷:
bind mount,直接在宿主机的文件系统中但是容器可以访问;
docker managed volume磁盘上Docker管理的数据卷,因为没有名字想要找到不容易,Docker来管理这些文件
数据卷是在(如果没有网络文件系统等情况下)宿主机文件系统里面的,
第一种是在宿主机内的特定目录下,
第二种在docker管理的目录下/var/lib/docker/volumes/

2.数据卷特点

(1)数据卷可以在容器之间共享或重用数据
(2)数据卷中的更改可以直接生效
(3)数据卷中的更改不会包含在镜像的更新中
(4)数据卷的生命周期一直持续到没有容器使用它为止

3.bind mount数据卷演示

bind mount:将主机上的目录或文件直接mount到容器里
(1)挂载文件到容器

docker run -d --name web1 -p 80:80 -v /opt/website: /usr/share/nginx/html nginx	##容器里/usr/share/nginx/html是nginx 的默认发布目录
curl localhost	##当前无资源,出现403报错
docker exec web1 mount 	##在容器里执行mount命令,不进入容器中
				##可以看到/dev/mapper/rhel-root(根目录),挂接到容器的/usr/share/nginx/html上
vim /opt/website/index.html 	##编辑nginx 的默认发布主页
curl localhost	##可以访问到资源内容

在这里插入图片描述

在这里插入图片描述
(2)在容器内修改挂载内容

docker container attach web1 	##应用容器不能这样进,会卡住,这是因为ubuntu会给你一个交互式shell,nginx只是打开了nginx,并没有给你交互式的shell
docker history ubuntu:latest
docker history nginx:latest

在这里插入图片描述

docker start web1	##开启web1容器
docker exec -it web1 bash 	##以交互方式给它执行一个bash命令,bash表示在容器内执行操作,打开一个bash ,在容器中修改
curl localhost 	##数据已经更改,达到预期效果

在这里插入图片描述
注意:
在容器内更改的数据事实上是宿主机上的数据
这种方式,不存在的目录会自动建立(无论容器还是宿主机),但是会以宿主机为准,绑定挂接到容器后,容器中的对应目录如果有数据,就会被覆盖
(3)指定挂载时是只读挂载
bind mount方式挂载时默认权限是rw,现在指定在挂载时只读ro

docker run -it --name vm1 -v /opt/data1:/data1 -v /opt/data2:/data2:ro ubuntu 	##这些目录在宿主机和容器内都是没有的 ,data1读写挂载,data2只读挂载
cd data1/
touch file1		##可以建立文件
cd ../data2
touch file2 	##不可以建立

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值