docker 数据卷挂载(详细案例)

什么是数据卷:

当我们把应用和环境 打包成一个镜像。
并且以这个镜像 运行产生一个容器时,当这个容器被删除,容器中的数据也随之被删除。
于是便产生了需求:容器中的数据持久化。
容器之间 有一个数据共享技术,将docker 中产生的 数据 同步到本地。
这就是 卷技术,将容器的内目录挂载到 本地,也就是Linux 服务器上。

在这里插入图片描述

容器的持久化操作和同步操作,容器之间可以数据共享。

如何使用数据卷:

1:使用命令直接挂载
docker run -it -v 主机目录:容器目录内
在这里插入图片描述
可以 使用 docker inspect 容器Id 查看是否挂载成功
在这里插入图片描述

此时已经挂载成功
“Mounts”: [ #-v 数据卷挂载
{
“Type”: “bind”,
“Source”: “/home/test”, #主机内地址
“Destination”: “/home”, #容器内地址
“Mode”: “”,
“RW”: true,
“Propagation”: “rprivate”
}
],
在这里插入图片描述

当 我们在 容器内创建了一个 testzrx.java 的文件时,文件被同步到了 Linux系统文件目录下。
同步的过程 类似与 双向绑定机制。
当容器停止 时,只要容器还存在,修改容器中挂载的 卷 的内容 也会被同步到 本地的Linux 系统文件目录下。

好处:当我们在本地修改文件的 时候,会自动的去修改容器中的文件。

具名挂载匿名挂载

#匿名挂载
-v 容器内路径

docker run -d -P --name nginx01-v /ect/nginx nginx
在这里插入图片描述

查看所有的 数据卷
docker volume ls

在这里插入图片描述

DRIVER VOLUME NAME
local 471b9f8e6cda5caf945e7420ba6434dd71432c5e05c787ed128ccb38e5cdc731(匿名)
local c5ed47ea84c7ccb620d97a2cfecdcfb8944720526afc7295e5bb26023dada859(匿名)

这种数据都是匿名挂载的,因为 我们在 -v 挂载数据卷的时候 没有指定 容器外的路径

#具名挂载
docker -v 卷名:容器内路径

docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx nginx
在这里插入图片描述

DRIVER VOLUME NAME
local 471b9f8e6cda5caf945e7420ba6434dd71432c5e05c787ed128ccb38e5cdc731
local c5ed47ea84c7ccb620d97a2cfecdcfb8944720526afc7295e5bb26023dada859
local juming-nginx(具名挂载)

查看卷的具体位置
docker volume inspect 卷名
在这里插入图片描述

所有为指定具体位置的卷 都会在 /var/lib/docker/volumes/xxxx 下的位置。

在这里插入图片描述

//平时使用的时候 尽量使用 指定路径挂载和 具名挂载,
-v /容器内路径 匿名挂载
-v 卷名:/容器内路径 具名挂载
-v /宿主机路径:/容器内路径 指定路径挂载

数据卷权限:
-v 容器内路径:ro Readonly 只读
-v 容器内路径:rw Readwrite 可读可写
默认是可读可写

#一但设置了容器权限,我们挂载出来的内容 就是有限定 的
docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx:ro nginx #只读
docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx:rw nginx #可读可写

#如果设置是ro(只读)的话,这个路径就只能通过宿主机操作,容器内部 是无法操作的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值