docker数据卷的概念

1.1什么是数据卷

1.1.1需要解决的问题

出于效率等一系列原因,
docker 容器的文件系统在宿主机上存在的方式很复杂,
这会带来下面几个问题:
1⃣️当容器删除时,容器中产生的数据将丢失
例如, MySQL 容器损坏无法启动,需要删除容器重新创建,那么数据库数据将会丢失
2⃣️无法在多个容器之间共享数据
例如, Tomcat 集群部署成功后,无法共享程序文件

 2.1数据卷的概念

为了解决以上的问题, docker 引入了数据卷 ( volume ) 机制 。数据卷是存在于一
个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件
系统的形式存在于宿主机中
当容器删除时,容器中的数据可以被持久化
数据卷的最大特点是:其生存周期独立于容器的生存周期。 使用数据卷可以在多
个容器之间共享数据

3.1配置数据卷目录

3.1.1挂载数据卷

将宿主机根目录中的 dataVolumeHost 挂载到容器根目录中的 dataVolumeContainer
 
docker run -it -v /dataVolumeHost:/dataVolumeContainer --name centos2 centos:7
 
-v:挂载数据卷
格式:/宿主机目录(文件):/容器内目录(文件)
目录必须是绝对路径
如果目录不存在,则自动创建
可以挂载多个数据卷

挂载的数据卷已经存在了,然后往里面存一个文件

显示是有的ab.txt文件的

 然后启动centos2,并且进入终端,找到挂载的文件,我们可以发现ab.txt已经存在了

3.1.2一个容器挂载多个数据卷

docker run -it \
-v /dataVolumeHost31:/dataVolumeContainer31 \
-v /dataVolumeHost32:/dataVolumeContainer32 \
--name centos3 centos:7

3.1.3两个容器挂载同一个数据卷

docker run -it -v /dataVolumeHost:/dataVolumeContainer4 --name centos4 centos:7
docker run -it -v /dataVolumeHost:/dataVolumeContainer5 --name centos5 centos:7

 也是同步的数据

4.1数据卷容器

4.1.1什么是数据卷容器

多容器数据交换的方式

多个容器挂载宿主机上的同一个数据卷 目录
多个容器挂载宿主机上的同一个数据卷 容器
首先将宿主机上的数据卷目录挂载到容器1上
然后将容器1挂载到容器2和容器3上
此时宿主机上的数据卷目录就会自动挂载到容器2和容3上,
即使容器3宕机,也不会影响其
他两个容器的运行
-v 参数后面只有一个目录的时候 ,表示 只设置容器中的数据卷目录 ,而宿主
机中的数据卷目录会被自动分配
docker run -it -v /volume --name c1 centos:7

挂载数据卷容器

docker run -it --volumes-from c1 --name c2 centos:7

docker run -it --volumes-from c1 --name c3 centos:7
--volumes-from :将当前容器挂载到指定的数据卷容器上
容器创建成功后,可以查看 c1 c2 的数据卷目录的分配情况,发现和 c1 使用的是同一个
宿主机的文件目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值