Docker容器的数据管理

Docker容器的数据管理

什么是数据卷?

数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或者多个容器提供访问,数据卷设计的目的,在于数据的永久性,它完全独立于容器的生存周期,因此,docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理,同一个数据卷可以只支持多个容器的访问。

数据卷的特点:

  • 1、数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会被拷贝到新初始化的数据卷中
  • 2、数据卷可以在容器之间共享和重用
  • 3、可以对数据卷里的内容直接进行修改
  • 4、数据卷的变化不会影响镜像的更新
  • 5、卷会一致存在,即使挂载数据卷的容器已经被删除

数据卷的使用

为容器添加数据卷

docker run -v /datavolume:/data -it centos /bin/bash

mkdir /datavolume
docker run --name volume -v ~/datavolume:/data -itd centos /bin/bash

tips: datavolume为宿主机目录。data为docker启动的volume容器的目录,这样在宿主机的/datavolume目录下创建的数据就会同步到容器的/data目录下

为数据卷添加访问权限

docker run --name volume1 -v ~/datavolume1:/data:ro -itd centos /bin/bash
添加只读权限之后在docker容器的/data目录下就不能在创建文件了,为只读权限;在宿主机下的/datavolume1下可以创建东西
docker exec -it volume1 /bin/bash
cd /data/
mkdir a

使用dockerfile构建包含数据卷的镜像

vim dockerfile
FROM centos
VOLUME ["/datavolume3","/datavolume6"]
CMD /bin/bash

构建镜像

docker build -t="volume" .

启动容器

docker run --name volume-dubble -it volume

会看到这个容器下有两个目录,datavolume3和datavolume6
那容器里的datavolume3和datavolume6目录对应宿主机的哪个目录呢?
通过dockar inspect volume-dubbole可以看到在宿主机的/var/lib/docker/volumes下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河越柯衍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值