Docker 之 数据卷

目录

1.  数据卷是什么

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

2.能干什么

3. 容器卷案例

3.1 宿主机vs容器之间映射添加容器卷

3.1.1 命令添加:

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

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

3.2 读写规则映射添加说明

3.2.1 读写(默认)

3.2.2 只读

3.3 卷的继承和共享

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

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


1.  数据卷是什么

有点类似我们Redis里面的rdb和aof文件。

将docker容器内的数据保存进主机的磁盘中。

卷就是目录或文件,存在与一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性。

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

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

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

docker run -it --name=u1 --privileged=true -v /tmp/host_data:/tmp/docker_data ubuntu

2.能干什么

Docker容器产生的数据,如果不备份,那么当容器实例被删除后,容器内的数据自然也就没有了,为了能保存数据在docker中我们使用卷。

特点:

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

3. 容器卷案例

3.1 宿主机vs容器之间映射添加容器卷

3.1.1 命令添加:

docker run -it --name=u1 --privileged=true -v /主机绝对路径目录:/容器内目录 镜像名
docker run -it --name=u1 --privileged=true -v /tmp/host_data:/tmp/docker_data ubuntu

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

docker inspect 容器ID



"Mounts": [
            {
                "Type": "bind",
                "Source": "/tmp/host_data",
                "Destination": "/tmp/docker_data",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

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

在宿主机上指定的目录下创建一个文件,在docker指定的目录下也会出现。一一映射,双向同步。

如果docker stop之后,在宿主机上添加一个文件 c.txt,再次启动docker,文件c.txt 也会出现在docker 的指定目录下。

3.2 读写规则映射添加说明

3.2.1 读写(默认)

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

默认和上节相同,默认就是rw

3.2.2 只读

容器实例内部被限制,只能读取不能写(read only)

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

如果宿主机写入内容,是可以同步到容器的。只显示容器的写。

3.3 卷的继承和共享

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

参照上面的映射命令 : docker run -it --name=r1 --privileged=true -v /tmp/u:/tmp/u ubuntu

此时宿主机和容器双向同步。

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

docker run -it --name=r2 --privileged=true --volumes-from 父容器 ubuntu
docker run -it --name=r2 --privileged=true --volumes-from r1 ubuntu

如果在r2 中指定目录创建一个问价,分别在r1和宿主机上的指定目录也会存在。

如果kill r1,在宿主机增加一个文件,此时r2上也会出现。是因为r2继承的是r1挂载路径的规则,r1挂了之后,r2不受影响。

如果再重启启动r1,在r1的指定目录下也会有aa.txt 文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详解:JS异步解决方案之回调函数,及其弊端

「异步编程」是前端工程师日常开发中经常会用到的技术,异步的实现有好几种方式,各有利弊,本篇先讲通过回调来实现来异步 。 一、同步和异步 同步编程和异步编程是两种不同的编程方式。 同步编程是指按照代码的顺序执行,每一行代…

前端小卡片:vue3路由是什么,有什么作用,该如何配置?

在 Vue 3 中,路由的处理使用了 Vue Router,它是官方提供的路由管理器。Vue Router 用于实现单页应用中的路由功能,通过将不同的 URL 映射到对应的组件,实现页面之间的切换和导航。 Vue Router 的作用包括: 实现页面之…

Python并发编程:线程和多线程的使用

前面的文章,我们讲了什么Python的许多基础知识,现在我们开始对Python并发编程进行学习。我们将探讨 Python 中线程和多线程的使用。帮助大家更好地理解如何使用这种技术。 目录 1. 线程(Threads) 1.1 Python 中的线程工作原理 …

《妈妈是什么》笔记(五) 一切负面经验都必须转化为正面角度

经典摘录 我的引导原则是,一切负面经验都必须转化为正面角度。我们不能选择孩子的经历,但是可以帮助孩子选择如何看待这些事情,以及如何积极地利用这些事情,锤炼自己的社会交往能力。 比如, 别人(老师、同…

正则表达式具体用法大全~持续更新

# 正则表达式: ## 单字符匹配: python # 匹配某个字符串: # text "abc" # ret re.match(b,text) # print(ret.group()) # 点(.):匹配任意的字符(除了\n): # text "\nabc&quo…

Navicat 干货 | 探索 PostgreSQL 的外部数据包装器和统计函数

PostgreSQL 因其稳定性和可扩展性而广受青睐,为开发人员和数据管理员提供了许多有用的函数。在这些函数中,file_fdw_handler、file_fdw_validator、pg_stat_statements、pg_stat_statements_info 以及 pg_stat_statements_reset 是其中的重要函数&#x…

记一次由于buff/cache导致服务器内存爆满的问题

目录 前言 复现 登录服务器查看占用内存进程排行 先了解一下什么是buff/cache? 尝试释放buffer/cache /proc/sys/vm/drop_caches dirty_ratio dirty_background_ratio dirty_writeback_centisecs dirty_expire_centisecs drop_caches page-cluster swap…

2024年计算机三级|数据库习题整理(自用④)

所有题目均来自【三级数据库技术基础题库】,此博客仅为知识点的补充,用于自主的回顾学习,仅供参考。 选择题 知识点:数据库文件 透明性分级: ①分片透明性 > ②位置透明性 > ③局部数据模型透明性 数据仓库数据…

vector类详解及重要函数实现

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 今日主菜:vector类 主厨:邪王真眼 所属专栏:c专栏 主厨的主页:Chef‘s blog 坚持下去,成功不是目的&a…

阿里二面:谈谈ThreadLocal的内存泄漏问题?问麻了。。。。

引言 ThreadLocal在Java多线程编程中扮演着重要的角色,它提供了一种线程局部存储机制,允许每个线程拥有独立的变量副本,从而有效地避免了线程间的数据共享冲突。ThreadLocal的主要用途在于,当需要为每个线程维护一个独立的上下文…

基于Python3的数据结构与算法 - 20 AVL的旋转

一、二叉搜索树的效率 平均情况下,二叉搜索树进行搜索的时间复杂度为O(lgn)。最坏情况下,二叉搜索树可能非常偏斜。(如下图所示)解决方法: 随机化插入AVL树 二、AVL树 AVL树是一棵自平衡的二叉树AVL树具有以下性质&…

自动驾驶感知新范式——BEV感知经典论文总结和对比(一)

自动驾驶感知新范式——BEV感知经典论文总结和对比(一) 博主之前的博客大多围绕自动驾驶视觉感知中的视觉深度估计(depth estimation)展开,包括单目针孔、单目鱼眼、环视针孔、环视鱼眼等,目标是只依赖于视…

YOLOv8:Roboflow公开数据集训练模型

Roboflow公开数据集 Roboflow是一个提供计算机视觉数据集管理和处理工具的平台。虽然Roboflow本身并不创建或策划公开数据集,但它提供了一系列功能,帮助用户组织、预处理、增强和导出计算机视觉数据集。 官方网站:https://universe.roboflow…

【Leetcode每日一题】 动态规划 - 使用最小花费爬楼梯(难度⭐)(41)

1. 题目解析 题目链接:746. 使用最小花费爬楼梯 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、设定状态表 为了解决这个问题,我们首先要明确一个“状态表”。这个状态表其实就是一个记录…

【蓝桥杯知识点】二分查找(超超超详细,再也不会错啦)

考完了计算机三级,蓝桥杯和数学建模的学习也要恢复常态啦!今天,我们来了解一种相对简单但容易出错的算法——二分查找。这里还有一些小方法让二分查找没有那么容易出错,开始学习吧啦啦啦! PS: 文章主要参考…

设计模式学习笔记 - 设计模式与范式 - 创建型:7.原型模式:如何快速地clone一个HashMap散列表

原型模式的原理与应用 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝&#xff0…

Lunule: An Agile and Judicious Metadata Load Balancer for CephFS——论文阅读

SC 2021 Paper 分布式元数据论文阅读笔记 问题 CephFS采用动态子树分区方法,将分层命名空间划分并将子树分布到多个元数据服务器上。然而,这种方法存在严重的不平衡问题,由于其不准确的不平衡预测、对工作负载特性的忽视以及不必要/无效的迁…

解码新时代内存架构:探秘数据在内存中的灵动驻足

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看,已成习惯 创作不易,多多支持! 随着信息技术的飞速发展,我们身处一个数据爆炸的时代。数据的处理和存储方式正日益成为技术革新的重要领域。在新时代的…

【Java】高级篇2:多线程

一、相关概念 注意: 1、不同进程之间不共享内存 2、进程之间的数据交换和通信成本很高 线程调度: 单核CPU与多核CPU: 并行与并发: 二、创建和启动线程 1、概述 2、方式 2.1 方式一:继承Thread类 2.2 方式二&#xf…

Fantasy RPG Spell Pack 2

介绍奇幻角色扮演游戏魔法包VFX,这是为您的Unity奇幻角色扮演游戏提供的终极视觉效果解决方案!这个包包含30个独特的VFX,将为您的法术和能力带来生命,让您的玩家沉浸在魔法和奇迹的世界中。 从令人惊叹的彩虹盾和闪电到旋转门户和召唤圈,这个包有你需要的一切来创造一个真…