Docker基础篇(8)- Volume简述、指定宿主机目录和容器目录创建volume

简述Volume

  1. 在学习volume之前,我们需要思考一个问题
    容器删除之后,其数据也会丢失,那么如何去解决容器删除,数据不丢失呢?

  2. 这个时候就有了存储卷,那么什么是存储卷呢?
    我们可简单理解成在宿主机上找一个文件系统(主机级的)之上存在某一目录,而后把这个目录直接与容器内部的文件系统之上的某一目录建立所谓的绑定关系。随后容器内的进程向目录中写数据的时候是直接写在宿主机的目录上。实现容器内的数据保存时可以绕过容器内部文件系统的限制从而与宿主机的文件系统建立了关系。二者是同步的。可以使得连个隔离的容器在某一目录上建立绑定关系,实现一定程度的共享。并且不用担心容器关闭后数据丢失,保证数据持久性。

  3. 存储卷的初衷是独立于容器的生命周期,实现数据持久化,因此删除容器时不会删除卷,也不会对哪怕未被引用的卷做垃圾回收操作。

  4. Docker有两种类型的卷
    第一种,指定容器的目录,宿主机的目录默认在/var/lib/docker/volumes/中
    第二种,指定宿主机目录和容器的目录

  5. 一个容器可以挂载多个存储卷


使用Volume - 指定容器的目录

首先创建一个容器b2,“-v”将存储卷挂载在容器的/data目录下,不要使用“–rm”参数,否则宿主机的文件也会被删除

在这里插入图片描述

新开窗口,查看b2信息,type挂载类型,name为挂载id,source为在宿主机的关联地址,/data为容器的存储卷地址

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

接下来进入宿主机的关联地址,发现该目录已经创建,查看有无文件

在这里插入图片描述

编写一个文本

在这里插入图片描述

在容器的关联地址进行查看,发现内容存在

在这里插入图片描述

此时在容器中书写内容

在这里插入图片描述

在宿主机中也可以看到在容器中书写的内容

在这里插入图片描述

关闭并删除b2容器

在这里插入图片描述

在容器b2被删除后,在宿主机关联的文件中我们可以看到该文件依旧没有被删除

在这里插入图片描述


使用Volume - 指定宿主机目录和容器目录

指定宿主机的关联地址为“/data/volumes/b2”,容器的关联地址为“/data”

语法: -v 宿主机路径/:容器路径
在这里插入图片描述

新窗口打开,查看b2容器的属性,类型变为bind,宿主机的关联地址为/data/volumes/b2,容器的关联地址为/data

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

查看宿主机是否存在"/data/volumes/b2"的目录,发现已经创建

在这里插入图片描述

在该目录书写一个文本

在这里插入图片描述

在容器中查看,可以知道关联成功

在这里插入图片描述

在容器中添加内容

在这里插入图片描述

在宿主机也可以查看

在这里插入图片描述

退出容器

在这里插入图片描述

因为刚刚b2容器执行完毕之后就自动删除,但是关联的数据是否删除了呢?此时我们对容器的指定地址进行修改,宿主机地址保持不变,依旧可以看到之前的数据

在这里插入图片描述

通过在容器中添加文本内容

在这里插入图片描述

在宿主机中依旧可以新添加的文本信息

在这里插入图片描述

Docker基础篇(7)- Docker运行nginx、redis容器
Docker基础篇(9)- 多个容器共享一块卷、操作Volume命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值