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. 最后:

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/883086.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

到底值不值得本地部署残血版DeepSeek?一文说清!教你如何白嫖满血版DeepSeek

一、介绍最近一段时间,DeepSeek 备受关注,夏天也向身边朋友推荐。但它常无法使用,原因是受到大规模恶意攻击,且 IP 地址在美国。 通过以下网站可以查看DeepSeek网站状态: status.deepseek.com/ 可以发现,最近标红的就是故障中​若遇服务器繁忙提示,大概率是被攻击了,并…

干货:DeepSeek+SpringAI实现流式对话!

前面一篇文章我们实现了《炸裂:SpringAI内置DeepSeek啦!》,但是大模型的响应速度通常是很慢的,为了避免用户用户能够耐心等待输出的结果,我们通常会使用流式输出一点点将结果输出给用户。 那么问题来了,想要实现流式结果输出,后端和前端要如何配合?后端要使用什么技术实…

Ftrans文件安全外发系统,为企业数据保驾护航!

随着企业的不断发展,集团分公司及各部门需向外部客户、合作伙伴及海外同事外发文件。过去,主要通过邮件、FTP方式将数据进行外发,主要存在以下问题和挑战: 1.进行文件外发时需通过OA的审批,由于OA审批与FTP传输两个环节割裂,公司无法有效限制数据外发范围和管控数据外发安…

本地部署 DeepSeek:小白也能轻松搞定!

大家好,我是晓凡。 写在前面 最近DeepSeek太火了,以至于每个小伙伴都想试试。DeepSeek 的到来可谓是开启了全民AI热潮。 本以为DeepSeek本地化部署有多难,实际上验证后很简单,操作起来就像给电脑装个新软件那么简单,大约十多分钟可完成本地部署。 今天咱们来聊聊如何在自己…

Git指南-从入门到精通

代码提交和同步命令 流程图如下:第零步: 工作区与仓库保持一致 第一步: 文件增删改,变为已修改状态 第二步: git add ,变为已暂存状态$ git status $ git add --all # 当前项目下的所有更改 $ git add . # 当前目录下的所有更改 $ git add xx/xx.py xx/xx2.py # 添加某几个…

一分钟搞定!CentOS 7.9上用Ansible自动化部署SQL Server 2019

一分钟搞定!CentOS 7.9上用Ansible自动化部署SQL Server 2019不熟悉整个流程的朋友可以先看之前的部署文章,手动部署一遍 一步步教你在CentOS 7.9上安装SQL Server 2019前言 这套Ansible脚本属于红帽官方出品,是一套mssql的自动化运维脚本,能够实现mssql的单实例部署和Alwa…

【Linux】Linux如何查看JDK的安装路径

如何在一台Linux服务器上查找JDK的安装路径呢?有那些方法可以查找定位JDK的安装路径?是否有一些局限性呢?下面总结了一下如何查找JDK安装路径的方法. 1、echo $JAVA_HOME 使用$JAVA_HOME的话能定位JDK的安装路径的前提是配置了环境变量$JAVA_HOME,否则如下所示,根本定位不…

[虚拟化/Docker] Docker Desktop 安装与使用

0 序:DeepSeek 等AI大模型在Windows的私有化部署DeepSeek 等AI大模型在Windows的私有化部署,最流行的开源AI终端应用————Dify,依赖于 Docker 环境。由此,必然离不开:Docker Desktop1 概述:Docker Desktopdocker desktop 是一款Docker容器运行管理工具,用于在本地机器…

【VUE框架】渗透测试的一些技巧(实现自动化测试)

以下文章来源于渗透测试之道 ,作者kk1230 一、什么是VUEVue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。而 Webpack 是一个模块打包工具,用于将项目中的各种资源(如 JavaScript 模块、CSS 样式文件、图片等)打包成浏览器可以识别的文件。 Webpack概念机制Webpack…

案例 百万数据批量插入测试

1、jpa、mybatis-plus、jdbc、load data infile测试比较2、load data infile语法测试3、相关代码 测试package com.xm;import com.xm.entity.UserP; import com.xm.task.JdbcInsert2Task; import com.xm.task.JdbcInsertTask; import com.xm.task.MybatisPlusInsert2Task; impo…

案例 百万级数据批量插入测试

1、jpa、mybatis-plus、jdbc、load data infile测试比较2、load data infile语法测试注:测试有限,仅供参考。雨淋淋过的季节

【向量嵌入】 大型语言模型的基础

一、向量是机器的语言 向量在 LLM 和生成式 AI 的功能中起着至关重要的作用。要了解它们的重要性,就需要理解什么是向量以及它们如何在 LLM 中生成和利用。 在数学和物理学中,向量是同时具有大小和方向的对象。它可以在几何上表示为有向线段,其中线的长度表示大小,箭头指向…