Docker容器数据卷

Docker容器数据卷

容器具有隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失。从容器隔离性角度来看,数据和容器时共存亡的;但是在实际应用场景中,更多的是需要数据能够持久化,而且很多场景也需要容器间数据能够共享。

手动存储数据

手动存储数据有两种方式:命令拷贝容器提交为镜像

  • 命令拷贝

    容器和主机之间可以通过命令进行数据拷贝,在容器删除之前,可以先将容器中的数据拷贝下来。
    在这里插入图片描述

  • 容器提交为镜像

​ 通过将容器进行提交,制作为新的镜像,将数据保存到新的镜像中。
在这里插入图片描述
手动备份的不足:时效上不能及时备份,效率低下,容易出现错误,更辛苦的是做备份的小盆友。

容器数据卷自动备份

为了能高效率及时的保存数据,在docker中使用了容器卷进行自动备份。数据卷可以理解为文件或目录,设计的目的就是为了数据的持久化和共享;

数据卷完全独立于容器的的生命周期,容器删除时,对应挂载的数据卷不会被删除。

通过将容器内的目录挂载到主机上面,就可让数据实现同步,不管是主机改动,还是容器内改动,都会同步更新。

数据卷特点

1:数据卷可在容器之间共享或重用数据

2:卷中的更改可以直接生效

3:数据卷中的更改不会包含在镜像的更新中

4:数据卷的生命周期一直持续到没有容器使用它为止

命令方式添加

  • 添加容器卷

    docker run -it -v /宿主机绝对路径目录:/容器内目录      镜像名
    

在这里插入图片描述

  • 查看数据卷是否挂载成功

    docker inspect 容器ID或容器名
    

在这里插入图片描述
在这里插入图片描述

  • 容器和宿主机之间数据共享
    在这里插入图片描述

  • 容器停止退出后,主机修改后数据同步验证
    在这里插入图片描述

  • 带权限的添加容器卷 容器只读
    在这里插入图片描述
    在这里插入图片描述

Dockerfile方式添加

  1. 创建文件夹,并在文件夹中创建DockerFile文件。

  2. DockerFile中使用VOLUMN指令给镜像添加一个或多个数据卷

  3. 通过docker build命令生成镜像文件,获得一个新的镜像

  4. 通过docker run命令生成一个容器。

  5. 通过 docker inspect命令查看容器卷挂载情况
    在这里插入图片描述
    在这里插入图片描述 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

数据卷容器

命名的容器用来挂载数据卷,其他容器通过挂载这个容器(父容器)来实现数据共享,挂载数据卷的容器,称之为数据卷容器主要用于容器间数据的传递和共享

  1. 创建具有容器卷的父容器
    在这里插入图片描述
  2. 创建子容器,且继承父容器
    在这里插入图片描述
  3. 在子/父容器中的数据卷中添加数据,可以看到在父子容器间,数据是共享的
    在这里插入图片描述
  4. 删除父容器,发现子容器之间的数据还是共享的
    在这里插入图片描述
  5. 创建子容器的子容器,发现数据也是能够共享的
    在这里插入图片描述
    欢迎关注本人微信公众号
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值