Bootstrap

Docker | 容器数据卷在docker中的角色:持久化存储

❌坑:容器卷记得加入

Docker挂载主机目录访问如果出现cannot open directory:Permission denied
解决办法:在挂载目录后多加一个--privileged=true参数即可
在这里插入图片描述

  • 知识回顾
    在这里插入图片描述

  • 数据卷的目的
    在这里插入图片描述

容器卷是什么

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:
卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷

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

能干吗

在这里插入图片描述

持久化存储的实现

1.宿主vs容器 之间映射 添加容器卷

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

在这里插入图片描述

查看数据卷是否挂载成功
docker inspect   容器ID

在这里插入图片描述
-v :后面的参数可以有多个

**即使停止了容器,在宿主机那里写相关的文件 启动docker容器后,仍然可以看到相关内容,数据是共享的 **
在这里插入图片描述

2.读写规则映射添加说明

1中的是使用默认的规则进行的, 就是可读和可写
在这里插入图片描述

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

3.卷的继承和共享

容器1完成和宿主机的映射

使用如上的案例

容器2继承容器1的卷规则
docker run -it --privileged=true  --volumes-from 父亲 --name u2 ubuntu
  • docker u2 容器内
    在这里插入图片描述

  • 主机内
    在这里插入图片描述

  • 容器 u1 内
    在这里插入图片描述

若是退出父亲 u1 u2该如何?

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

同样的:我们可以发现
容器1停止 : 操作容器2 主机 有相应的文件存在
容器1启动 : 上一步创建的文件 在容器1启动后 同样存在一样的文件

在这里插入图片描述

;