Docker | 容器数据卷在docker中的角色:持久化存储
容器卷持久化存储
- ❌坑:容器卷记得加入
- 容器卷是什么
- 能干吗
- 持久化存储的实现
- 1.宿主vs容器 之间映射 添加容器卷
- 查看数据卷是否挂载成功
- 2.读写规则映射添加说明
- 3.卷的继承和共享
- 容器1完成和宿主机的映射
- 容器2继承容器1的卷规则
- 若是退出父亲 u1 u2该如何?
❌坑:容器卷记得加入
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启动后 同样存在一样的文件