【docker10】Docker容器数据卷

news2024/11/18 7:39:52

Docker容器数据卷

1.Docker容器数据卷是什么

注意(坑): 容器卷记得加入 --privileged=true
为什么: docker挂载主目录访问如果出现cannot open directory.:Permission denied
解决办法: 在挂在目录后多加一个–privileged=true参数即可

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

上一讲中的命令

docker run -d -p 5000:5000 -v /asule/myregistry/:/tmp/registry --privileged=true registry
-v:要添加自定义的容器卷
:左边是宿主机的路径
:右边是容器内的路径
–privileged=true:是放开权限

目的是为了给容器中的数据做备份
目的
Docker容器数据卷类似于我们Redis里面的rdb和aof文件

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

  • 通俗易懂的话就是:备份

  • 运行一个带有容器卷存储功能的容器实例

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

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

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

  • 为了能够保存数据在docker中我们使用Docker容器数据卷

特点:

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

2.宿主机和容器卷挂载

2.1容器卷和主机互联互通

命令: docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
默认是rw读写规则

docker内的数据保存进宿主机的磁盘中
docker
docker
host
host

docker中创建,host中修改
docker
docker
host
host
图示:
互联互通

2.2.查看数据卷是否挂载成功

命令: docker inspect 容器ID

查看数据卷是否挂载成功

2.3互联互通时容器宕机

互联互通时容器宕机
停止docker容器中的ubuntu
停止docker容器中的ubuntu
host中增加c.txt
host中增加c.txt
重新启动刚才的ubuntu容器
重新启动刚才的ubuntu容器

问题: 恢复的容器中是否会同步c.txt
解答:会

同步c.txt

2.4小结

  1. docker修改,主机同步获得
  2. 主机修改,docker同步获得
  3. docker容器stop,主机修改,docker重启且同步获得

3.容器卷的读ro和写rw规则和添加映射说明

命令: docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名
默认同上案例,就是rw

3.1容器实例内部被限制

只能读不能写 加:ro
read only(ro):只能读不能写

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

初始化容器卷
初始化容器卷
初始主机状态
初始主机状态
主机创建文件
主机创建文件

容器内部写文件是不允许的,只读模式
只读模式

3.2小结

宿主机写入内容,可以同步给容器内,容器可以读取到

4.容器卷之间的继承

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

    容器
    容器

  2. 容器2继承容器1的卷规则

    命令:docker run -it --privileged=true --volumes-from 父类 --name u2 ubuntu
    -v的全名就是–volumes-form

    主机上和容器上的创建的文件都有主机上和容器上的创建的文件都有
    u2容器中新建u2data.txt
    新建u2data.txt
    主机中
    主机中
    容器中
    容器中

    退出u1
    问题:u1已经停止了,那u2和主机是什么联系?
    答案:u1和u2是两个不同的容器,u2继承的是u1挂载路径的规则,两个容器是独立的,其中一个宕机了并没有什么关系,另一个容器还是与主机相互联通的

    退出u1只剩u2退出u1
    主机创建host2.txt文件
    主机创建host2.txt文件
    观察u2
    观察u2

    结论:发现u2中还是有host2.txt

    问题:这个时候u1恢复,会不会有host2.txt呢?
    回答:有的,一主二从只要恢复就会有

    u1恢复

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++ - 第20节 - 异常

1.C语言传统的处理错误的方式 传统的错误处理机制: 1.终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。2.返回错误码,缺陷:需要程序员自己去查找对应的错误。如系…

基于神将网络方式进行数据回归拟合实例

前言本篇博客主要以神经网络拟合数据这个简单例子讲起,然后介绍网络的保存与读取,以及快速新建网络的方法。一、神经网络对数据进行拟合import torch from matplotlib import pyplot as plt import torch.nn.functional as F# 自定义一个Net类&#xff0…

Diffusion model(二): 训练推导详解

接上文 Diffusion的训练推导 1. 最小化负对数似然与变分下界 在弄懂diffusion model前向和反向过程之后,最后我们需要了解其训练推导过程,即用什么loss以及为什么。在diffusion的反向过程中,根据(3)(3)(3)式我们需要预测μθ(xt,t),Σθ(x…

【Linux】进程状态和进程优先级

文章目录1. 进程状态2. Linux的进程状态3. 僵尸进程4. 孤儿进程5. 进程优先级1. 进程状态 为了更深入地了解进程,我们需要知道进程的不同状态。 不同的操作系统,对于进程状态有着不同的说法,如:运行、阻塞、挂起、新建、就绪、等…

SIoU Loss

1、论文 题目:《SIoU Loss: More Powerful Learning for Bounding Box Regression》 参考博客: https://blog.csdn.net/qq_56749449/article/details/125753992 2、原理 有关IoU损失函数,像GIoU、DIoU、CIoU都没有考虑真实框与预测框之间的…

关于zookeeper和kafka不得不说的秘密

zookeeper简介1. zookeeper的概述ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括&#xff1a…

【四】Netty 分隔符和定长解码器的应用

Netty 分隔符和定长解码器的应用理论说明LineBasedFrameDecoder 开发大概流程代码展示netty 依赖EchoServer 服务端启动类EchoServerHandlerEchoClientEchoClientHandler结果打印客户端打印服务端打印FixedLengthFrameDecoder 开发代码展示EchoServer 服务端启动类EchoFixServe…

【云原生】k8s之pod控制器

内容预知 前言 1.pod控制器的相关知识 1.1 pod控制器的作用 1.2 pod控制器的多种类型 1.3 pod容器中的有状态和无状态的对比 (1)有状态实例 (2)无状态实例 2.Deployment控制器 2.1 SatefulSet 控制器的运用 2.1 Sateful…

从0到1完成一个Vue后台管理项目(六、404页)

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) 从0到1完成一个Vu…

[LeetCode周赛复盘] 第 95 场周赛20230107

[LeetCode周赛复盘] 第 95 场周赛20230107 一、本周周赛总结二、 [Easy] 2525. 根据规则将箱子分类1. 题目描述2. 思路分析3. 代码实现三、[Medium] 2526. 找到数据流中的连续整数![在这里插入图片描述](https://img-blog.csdnimg.cn/237210adb20e457aaf2671e6e8f9e43b.png)2. …

Linux系统中C++多态和数据封装的基本方法

大家好,今天主要和大家分享一下,多态,数据封装的使用方法。 目录 第一:C中的多态 第二:C中数据封装方法 第一:C中的多态 C多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函…

将内核加载到内存

文章目录前言前置知识代码实验操作前言 本博客记录《操作系统真象还原》第五章第3个实验的操作~ 实验环境:ubuntu18.04VMware , Bochs下载安装 实验内容:将内核载入内存,初始化内核代码 实验原理 编写内核程序。将内核程序用dd命令复制到…

Odoo 16 企业版手册 - 库存管理之存储类别

存储类别 Odoo中的存储类别功能将允许您将许多存储位置分组到一个类别下。您可以在Odoo 库存管理模块中创建许多此类类别,这将有助于执行更智能的放置操作。在配置存储类别之前,您必须配置库存中可用的存储位置。然后,您可以将它们分组到一个…

LeetCode刷题模版:31 - 40

目录 简介31. 下一个排列32. 最长有效括号33. 搜索旋转排序数组34. 在排序数组中查找元素的第一个和最后一个位置35. 搜索插入位置36. 有效的数独37. 解数独38. 外观数列39. 组合总和40. 组合总和 II结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指…

电影解说开头怎么写吸引人?

电影解说开头怎么写吸引人?很多电影解说创作者文采不够好,开头不知道怎么写?毕竟想留住用户继续观看视频,开头是至关重要的,今天笔者就分享电影解说文案万能公式模板,让大家创作更简单!一个好的…

feature engnineering 特征工程

特征工程数值型变量standardizationlog_transformation(使其符合正态分布)polynomial features分类型变量orinigalencoderonehot encoder分类创造下的数值以下代码根据Abhishek Thakur在kaggle上的机器学习30天 (b站) (kaggle)可惜的是,我没有…

Oracle 19c VLDB and Partitioning Guide 第5章:管理和维护基于时间的信息 读书笔记

本文为Oracle 19c VLDB and Partitioning Guide第5章Managing and Maintaining Time-Based Information的读书笔记。 Oracle 数据库提供了基于时间管理和维护数据的策略。 本章讨论 Oracle 数据库中的组件,这些组件可以构建基于时间管理和维护数据的策略。 尽管大…

计算机网络复习之网络层

文章目录数据报与虚电路服务的对比IP 协议IP数据报格式IP地址NAT(网络地址转换)子网划分和子网掩码在支持子网划分的因特网中,路由器如何转发IP数据报无分类编制CIDR构成超网RIP协议OSPF协议ARP协议ICMP协议Ping和Traceroute参考路由选择是网…

Eclipse安装教程

Eclipse安装教程 目录一. 概述二. 下载eclipse三. 安装eclipse四. 使用eclipse。一. 概述 eclipse是针对java编程的集成开发环境,其设计思想是“一切皆插件”。就其本身而言,eclipse只是一个框架…

Hive表的创建,删除,修改

TBLPROPERTIES的主要作用是按键-值对的格式为表增加额外的文档说明。Hive会自动增加两个表属性:一个是last_modified_by,其保存着最后修改这个表的用户的用户名﹔另一个是 last_modified_time,其保存着最后一次修改的新纪元时间秒。用户还可以拷贝一张已…