Docker:第三章:Docker的数据卷和数据卷容器

一、数据卷

1 、什么是数据卷

1.1 、需要解决的问题

出于效率等一系列原因,docker 容器的文件系统在宿主机上存在的方式很复杂,这会带来下面几个问题:

当容器删除时,容器中产生的数据将丢失

例如,MySQL 容器损坏无法启动,需要删除容器重新创建,那么数据库数据将会丢失

在这里插入图片描述
无法在多个容器之间共享数据

例如,Tomcat 集群部署成功后,无法共享程序文件
在这里插入图片描述

1.2 、数据卷的概念

为了解决以上的问题,docker 引入了数据卷(volume) 机制。

数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件系统的形式存在于宿主机中。

当容器删除时,容器中的数据可以被持久化:
在这里插入图片描述

在多个容器之间共享数据:

在这里插入图片描述

数据卷的最大特点是:其生存周期独立于容器的生存周期。浅红色文字:使用数据卷可以在多个容器之间共享数据

2 、配置数据卷目录

2.1 、挂载数据卷

将宿主机根目录中的 dataVolumeHost 挂载到容器根目录中的 dataVolumeContainer

docker run -it -v /dataVolumeHost:/dataVolumeContainer --name centos2 centos:7

OPTIONS 说明
在这里插入图片描述

2.2 、查看数据卷是否挂载成功

此时可以分别查看宿主机和容器的根目录,发现分别生成了数据卷目录
在这里插入图片描述
执行命令 docker inspect可以查看数据卷已挂载

docker inspect centos2

在这里插入图片描述

2.3 、数据共享

首先进入容器,在容器的数据卷挂载目录中创建文件并写入内容然后退出容器,查看宿主机挂载目录,可以看到同步更新的文件
在这里插入图片描述

2.4 、数据的同步

首先停止容器
然后在宿主机修改共享数据
接下来启动前面的容器,查看共享数据文件,发现数据在容器中同步
在这里插入图片描述

2.5 、数据的持久化

首先删除容器
然后在宿主机修改共享数据
接着重新创建容器并挂载数据卷
发现数据在容器中恢复
在这里插入图片描述

2.6 、一个容器挂载多个数据卷

在这里插入图片描述
在这里插入图片描述
2.7 、两个容器挂载同一个数据卷

docker run -it -v /dataVolumeHost:/dataVolumeContainer4 --name centos4 centos:7
docker run -it -v /dataVolumeHost:/dataVolumeContainer5 --name centos5 centos:7
在这里插入图片描述

二、数据卷容器

1、什么是数据卷容器

1.1 、多容器数据交换的方式

在这里插入图片描述

多个容器挂载宿主机上的同一个数据卷目录
多个容器挂载宿主机上的同一个数据卷容器

在这里插入图片描述

1.2 、数据卷容器的概念

数据卷容器也是一个容器,但是这个容器的作用是专门提供数据卷供其他容器挂载,其它容器通过挂载这个数据卷容器实现数据共享。

2 、配置数据卷容器

2.1 、创建数据卷容器

当 -v 参数后面只有一个目录的时候,表示只设置容器中的数据卷目录,而宿主机中的数据卷目录会被自动分配

docker run -it -v /volume --name c1 centos:7

容器创建成功后,可以查看数据卷目录的分配情况

docker inspect c1

在这里插入图片描述

2.2 、挂载数据卷容器

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

OPTIONS 说明

–volumes-from:将当前容器挂载到指定的数据卷容器上
容器创建成功后,可以查看 c1 和 c2 的数据卷目录的分配情况,发现和 c1 使用的是同一个宿主机的文件目录
docker inspect c2
docker inspect c3
在这里插入图片描述

在这里插入图片描述

2.3 、测试数据共享vi

/var/lib/docker/volumes/06e480611281a60059aeb574dc2b455645 d896858d7c7a849c65cf2113a35df3/_data/data.txt

docker exec -it c2 cat /volume/data.txt
docker exec -it c3 cat /volume/data.txt
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值