当前位置: 首页 > news >正文

7. Docker 容器数据卷的使用(超详细的讲解说明)

7. Docker 容器数据卷的使用(超详细的讲解说明)

文章目录

  • 7. Docker 容器数据卷的使用(超详细的讲解说明)
  • 1. Docker容器数据卷概述
  • 2. Docker 容器数据卷的使用演示:
    • 2.1 宿主 和 容器之间映射添加容器卷
    • 2.2 容器数据卷 读写规则映射添加说明
    • 2.3 容器数据卷的继承和共享
  • 3. 最后:


坑:容器卷(一定一定)记得加入 --privileged=true

Docker挂载主机目录访问如果出现 cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个 --privileged=true 参数即可。

如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了额,如果要开启,我们一般使用–privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。

在这里插入图片描述

1. Docker容器数据卷概述

Docker 容器数据卷是什么:

一句话:有点类似我们 Redis 里面的 rdbaof 文件。

将 docker 容器内的数据保存进宿主机的磁盘中,这样每次启动的容器实例当中的数据,都是从宿主主机(或者是另外的一个服务器存储数据的)当中读取的数据都还在,并不会因为容器实例删除了,数据而消失了。

运行一个带有容器卷存储功能的容器实例 ——> docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名

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

Docker 容器数据卷能做什么:?

将运用与运行环境打包镜像, run 后形成容器实例运行,但是我们对数据的要求希望是:持久化的

Docker 容器产生的数据,如果不备份,那么当容器实例删除后,容器内的数据自然也就没有了。

为了能保存数据在 Docker 中我们使用卷。

特点:

  1. 数据卷可在容器之间共享或重用数据。
  2. 卷中的更改可以直接实时生效。
  3. 数据卷中的更改不会包含在镜像的更新中。
  4. 数据卷的生命周期一直持续到没有容器使用它为止。

2. Docker 容器数据卷的使用演示:

2.1 宿主 和 容器之间映射添加容器卷

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

 docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录      镜像名
 公式:docker run -it -v /宿主机目录:/容器内目录 ubuntu /bin/bash
docker run -it --name myu3 --privileged=true -v /home/linux/demo02/tmp/myHostData:/tmp/myDockerData ubuntu /bin/bash
  • 特别说明:–name 表示配置该容器实例的名称。

在这里插入图片描述

在这里插入图片描述

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

docker inspect 容器ID
[root@localhost ~]# docker inspect 68a414008829

在这里插入图片描述

容器和宿主机之间数据共享:

  1. docker修改,主机同步获得

在这里插入图片描述

  1. 主机修改,docker同步获得

在这里插入图片描述

  1. docker容器 stop,主机修改,docker容器重启看数据是否同步。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 容器数据卷 读写规则映射添加说明

在这里插入图片描述

默认配置的(没有特别说明的容器数据卷),默认就是可读可写(rw) 的。

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

只读配置:生成配置容器数据卷的时候 ,ro

只读:容器实例内部被限制,只能读取不能写。

在这里插入图片描述

这种场景,一般不常用,都是因为你要存数据,都是从容器实例当中的数据,写入到主机(或者其他的存储器服务器)当中进行一个备份。防止容器实例关闭了,数据丢失掉了。

2.3 容器数据卷的继承和共享

  1. 容器1完成和宿主机的映射:
docker run -it  --privileged=true -v /mydocker/u:/tmp --name u1 ubuntu

在这里插入图片描述

  1. 创建容器实例 u2 并继承容器 u1的卷规则

公式如下:

docker run -it  --privileged=true --volumes-from 父类  --name u2 ubuntu
docker run -it  --privileged=true --volumes-from u1  --name u2 ubuntu

在这里插入图片描述

u2 就继承 u1 容器实例的所有内容,比如:容器数据卷的路径,以及当中的内容数据。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述

相关文章:

  • 编译安装vsftpd后,虚拟用户模式下登录提示:“530 Login incorrect.“
  • 如果维护了多种语言版本的文本对应关系,另一种语言只需要将对应文本填入对应位置即可,这种情况应该如何实现自动填入
  • 【verilog】函数clogb2的解读
  • 【python】http.server内置库构建临时文件服务
  • C语言蓝桥杯1003: [编程入门]密码破译
  • 【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)——4.2 LSTM的引入与解决长期依赖问题的方法】
  • 第一章嵌入式系统概论考点05数字(电子)文本
  • 计算机网络-八股-学习摘要
  • 【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)
  • 一天急速通关SpringMVC
  • 算法08-递归调用转为循环的通用方法
  • Lua闭包的使用以及需要注意的问题
  • RadASM环境,win32汇编入门教程之二
  • 技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
  • 第四十四篇--Tesla P40+Janus-Pro-7B部署与测试
  • CI/CD部署打包方法
  • 2.11寒假
  • SiliconCloud 支持deepseek,送2000w token
  • 使用 Nginx 搭建代理服务器(正向代理 HTTPS 网站)指南
  • 剑指offer第2版:搜索算法(二分/DFS/BFS)
  • 网站logo怎么做/百度收录技巧
  • 建网站郑州/互联网营销师怎么考
  • 做语音聊天网站要多少钱/浏览广告赚钱的平台
  • 乌鲁木齐网站设计信息推荐/少女长尾关键词挖掘
  • 大型建站网站/免费建站免费网站
  • 网站域名怎么修改吗/360网站seo手机优化软件