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

【Docker】docker的存储

介绍

  docker存储主要是涉及到3个方面:

第一个是容器启动时需要的镜像

镜像文件都是基于图层存储驱动来实现的,镜像图层都是只读层,

第二个是: 容器读写层,

容器启动后,docker会基于容器镜像的读层,映射出一个读写层,容器运行产生的一些数据或者对镜像层文件的修改都是在这层体现,但是容器删除这些数据就没有了,这些数据并没有存在外部,而是容器读写层中。

第三个是: docker的数据卷volume,

Docker 卷

Docker 卷用于持久化容器的数据。它们可以被看作是独立于容器生命周期的存储区域。管理 Docker 卷的主要命令有:

  • docker volume create:创建一个新的卷。
  • docker volume ls:列出所有卷。
  • docker volume inspect:查看卷的详细信息。
  • docker volume rm:删除一个或多个卷。
  • docker run -v <volume_name>:/container/path ...:在运行容器时挂载卷

容器卷信息具体内容: CSDN

Docker的数据卷是独立于容器的图层文件系统的,它是利用外部的文件挂载到内部,上面的数据即使容器删除了上面的数据还是存在。具体的目录在:

docker的root dir 上的volumes

Docker卷和Linux系统中的LVM区别 

Docker 卷(Volumes)和 Linux 逻辑卷管理器(LVM, Logical Volume Manager)虽然都与存储有关,但它们服务于不同的目的,并且在使用场景、功能特性和实现方式上都有显著的区别。

Docker 卷 (Volumes)

用途

  • Docker 卷主要用于容器内的数据持久化。当容器被删除或重新创建时,卷中的数据不会丢失。
  • 它们提供了一种将宿主机文件系统的一部分挂载到容器中的方法,使得数据可以在多个容器之间共享。

特性

  • 独立于容器生命周期:即使容器停止或被删除,卷中的数据仍然保留。
  • 性能:直接访问宿主机的文件系统,通常比使用联合文件系统更高效。
  • 易于备份和迁移:可以方便地备份卷的内容,也可以将卷从一个宿主机迁移到另一个宿主机。
  • 共享性:可以被多个容器同时挂载和使用。

操作

  • 创建卷:docker volume create my_volume
  • 列出卷:docker volume ls
  • 检查卷信息:docker volume inspect my_volume
  • 删除卷:docker volume rm my_volume
  • 使用卷:docker run -v my_volume:/path/in/container my_image

Linux 逻辑卷管理器 (LVM)

用途

  • LVM 是一种高级磁盘管理技术,用于在 Linux 系统中灵活地管理和分配存储空间。
  • 它允许你动态调整分区大小,组合多个物理磁盘为一个大的逻辑卷,以及在线添加或移除磁盘。

特性

  • 灵活性:可以轻松地扩展或缩小逻辑卷的大小。
  • 抽象层:提供了物理磁盘和文件系统之间的抽象层,使你可以更灵活地管理存储。
  • 跨物理磁盘:可以跨越多个物理磁盘创建逻辑卷。
  • 快照支持:支持创建逻辑卷的快照,便于备份和恢复。

操作

  • 创建物理卷:pvcreate /dev/sda1
  • 创建卷组:vgcreate my_vg /dev/sda1
  • 创建逻辑卷:lvcreate -L 10G -n my_lv my_vg
  • 扩展逻辑卷:lvextend -L +5G /dev/my_vg/my_lv
  • 调整文件系统大小:对于 ext4 文件系统,使用 resize2fs /dev/my_vg/my_lv;对于 XFS 文件系统,使用 xfs_growfs /dev/my_vg/my_lv
  • 查看状态:pvsvgslvs

主要区别

  • 应用场景

    • Docker 卷主要用于容器的数据持久化和共享。
    • LVM 用于整个系统的磁盘管理,提供更高级的磁盘空间分配和管理功能。
  • 生命周期

    • Docker 卷是独立于容器的,即使容器被删除,卷依然存在。
    • LVM 的逻辑卷是与系统相关的,一旦系统被重装或格式化,逻辑卷需要重新配置。
  • 管理粒度

    • Docker 卷主要针对单个目录或文件进行管理。
    • LVM 可以管理整个磁盘分区,甚至跨越多个物理磁盘。
  • 性能

    • Docker 卷直接访问宿主机文件系统,通常性能较好。
    • LVM 提供了额外的抽象层,可能引入一些性能开销,但在大多数情况下影响不大。
  • 功能

    • Docker 卷提供了简单的数据持久化和共享机制。
    • LVM 提供了更多的高级功能,如动态调整大小、快照、镜像等。

总结来说,Docker 卷和 LVM 在 Linux 中扮演着不同的角色,分别解决不同层次的存储问题。选择哪种方式取决于你的具体需求和使用场景。

相关文章:

【Docker】docker的存储

介绍 docker存储主要是涉及到3个方面&#xff1a; 第一个是容器启动时需要的镜像 镜像文件都是基于图层存储驱动来实现的&#xff0c;镜像图层都是只读层&#xff0c; 第二个是&#xff1a; 容器读写层&#xff0c; 容器启动后&#xff0c;docker会基于容器镜像的读层&…...

C++游戏开发深度解析

C游戏开发深度解析 C作为一种高效、灵活且功能强大的编程语言&#xff0c;在游戏开发领域扮演着举足轻重的角色。从独立小游戏到大型3A级游戏&#xff0c;C都以其卓越的性能和广泛的适用性成为游戏开发者们的首选。本文将从C游戏开发的基础、优势、引擎、挑战以及未来趋势等多…...

计算机毕业设计 基于Python的无人超市管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

dockercommit 后的镜像没有数据

docker commit 后的镜像没有数据 docker commit load save mysql背景 工位机环境迁移MySQL时&#xff0c;使用commit》save》MySQL转移》load》run -p&#xff0c;使用数据库连接工具连接成功后&#xff0c;发现没有MySQL中没有库表等数据。 原因分析 直接搜&#xff0c;找…...

基于SD卡的基因(DNA)炫酷LED桌面灯

基于SD卡的基因&#xff08;DNA&#xff09;炫酷LED桌面灯 一、介绍一个已知的问题解决办法 二、支持目录材料准备LED灯光文件&#xff08;我使用的PLA颜色&#xff09; 三、 打印部件和焊接四、拼装打印的DNA散件五、组合DNA螺旋结构六、执行DNA文件七、程序烧录八、总结及成品…...

【算法系列-链表】设计链表

【算法系列-链表】设计链表 文章目录 【算法系列-链表】设计链表1. 算法分析&#x1f6f8;2. 解题过程&#x1f3ac;2.1 初始化2.1.1 思路分析&#x1f3af;2.1.2 代码示例&#x1f330; 2.2 get(获取第n个节点的值)2.2.1 思路分析&#x1f3af;2.2.2 代码示例&#x1f330; 2.…...

螺狮壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)

3 网络及IP规划 3.1 容器连接网络初步规划 规划所有容器与虚拟机的三张网卡以macvlan的方式进行连接&#xff08;以后根据应用可以更改&#xff09;&#xff0c;在docker下创建nat、wifi、nei、wai四张网卡&#xff0c;他们和虚拟机及宿主机上NIC的相关连接参数如下表所示&am…...

Zookeeper下载、安装配置

一、基础配置 使用zookeeper 需要提前配置安装好zookeeper的环境 端口 默认的2888端 默认的 2888端口‌主要用于Leader和Follower之间的通信。在ZooKeeper集群中&#xff0c;这个端口用于数据同步、服务器初始化以及会话管理等方面的通信。默认的3888 3888端口‌则是在选举L…...

【代码记录】多线程示例代码

用多线程处理多gpu模型输入的时候写的&#xff0c;感觉复用性会很不错&#xff0c;用以记录和分享 import threading def multithreadhelper(workfn,alldata:list,number:int):# workfn takes only one argument: a example of alldata# data preparationdef chunk_data(data,…...

【数据结构】什么是平衡二叉搜索树(AVL Tree)?

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 &#x1f4cc;AVL树的概念 &#x1f4cc;AVL树的操作 &#x1f38f;AVL树的插入操作 ↩️右单旋 ↩️↪️右左双旋 ↪️↩️左右双旋 ↪️左单旋 &#x1f38f;AVL树的删…...

ip的类型有多少种?我想做大数据需要使用哪一种

IP地址主要分为两种类型&#xff1a; IPv4&#xff08;Internet Protocol version 4&#xff09;&#xff1a; 由32位二进制数组成&#xff0c;通常以四个十进制数表示&#xff08;例如&#xff1a;192.168.1.1&#xff09;。每个十进制数的范围是0到255。IPv4地址的总数量约为…...

位运算(6)_只出现一次的数字 II

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 位运算(6)_只出现一次的数字 II 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 …...

C#的Socket编程细节

目录 Socket中的Accept 步骤1&#xff1a;创建并绑定服务端套接字 步骤2&#xff1a;接受连接请求 步骤3&#xff1a;与客户端通信 步骤4&#xff1a;关闭套接字 注意事项 Socket中的Connected 使用Connected属性 客户端检查连接状态 服务端检查连接状态 注意事项 S…...

python三局两胜游戏

分为以下步骤实现这个功能 1、猜拳 2、机器产生数值 3、人去猜数字&#xff0c;定义剪刀石头布 4、控制机器产生&#xff0c;123程序运行的时候可能会出现一点玄学问题&#xff0c;就是&#xff0c;提示n1这一行不符合pep8然后报错&#xff0c;不用管&#xff0c;运行就可以&am…...

java:brew安装rabbitmq以及简单示例

什么是消息队列mq 可以看我之前写的这篇 消息队列MQ rabbitmq简介 RabbitMQ是由erlang语言开发&#xff0c;基于AMQP&#xff08;Advanced Message Queue 高级消息队列协议&#xff09;协议实现的消息队列&#xff0c;它是一种应用程序之间的通信方法&#xff0c;消息队列在…...

基于单片机跑步机控制系统设计

** 文章目录 前言概要功能设计设计思路 软件设计效果图 程序文章目录 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…...

【架构】efk日志监控

文章目录 一、EFK组件及其功能二、EFK日志监控的工作流程三、EFK日志监控的优势四、EFK日志监控的应用场景 推荐阅读 EFK日志监控是一种高效的日志管理解决方案&#xff0c;由Elasticsearch、Fluentd&#xff08;或Logstash&#xff09;和Kibana三个开源工具组成。以下是对EFK日…...

亚信安全发布第34期《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件91起&#xff0c;近三周勒索事件数量较为稳定。从整体上看&#xff0c;Ransomhub是影响最严重的勒索家族&#xff1b;Play和ElDorado恶意家族也是两个活动频繁的恶意家族&#xff0c;需要注意防范。本周&#xff0c;土耳其公司巴克皮…...

如何在实际应用中使用回溯算法解决问题?

如何在实际应用中使用回溯算法解决问题? 回溯算法是一种强大的问题解决方法,它通过尝试不同的选择并在遇到不可行的情况时回退,以找到满足特定条件的解决方案。在实际应用中,回溯算法可以用于解决各种复杂的问题。本文将介绍如何在实际应用中使用回溯算法,并通过一些案例…...

9. 正则表达式

编程工具和技术是以一种混乱、进化的方式生存和传播的。获胜的并不总是最好或最杰出的工具&#xff0c;而是那些在合适的利基市场中发挥足够好的功能&#xff0c;或者恰好与另一项成功的技术相结合的工具。 在本章中&#xff0c;我将讨论这样一种工具--正则表达式。正则表达式是…...

开源项目可持续性挑战:从OpenOffice兴衰看企业技术选型策略

1. 开源软件的理想与现实&#xff1a;从OpenOffice的兴衰谈起几年前&#xff0c;当我听说Apache软件基金会&#xff08;ASF&#xff09;正在考虑让OpenOffice项目“退休”时&#xff0c;内心的震动是实实在在的。对于我们这些经历过世纪之交软件大战的老兵来说&#xff0c;Open…...

Google Maps路线优化突遭瓶颈?Gemini大模型如何将平均行程时间压缩23.6%(2024Q2实测数据)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Google Maps路线优化突遭瓶颈&#xff1f;Gemini大模型如何将平均行程时间压缩23.6%&#xff08;2024Q2实测数据&#xff09; 当Google Maps在高并发城市网格中遭遇动态交通建模失准、实时事件响应延迟…...

工业意识:03 组态软件怎么选?WinCC、FactoryTalk、国产一篇讲透

03 组态软件怎么选?WinCC、FactoryTalk、国产一篇讲透 前面咱们把SCADA聊成“千里眼”,MES聊成“透明玻璃房”,现在终于到最爽的部分——画面组态!简单说,就是用鼠标拖拖拽拽,在电脑上搭出那些监控大屏:仪表盘、按钮、趋势图、报警灯、3D管道……全连上PLC变量,点一下…...

论文AI率太高怎么救?答辩前1周降AI率完整攻略+不延期方案!

论文AI率太高怎么救&#xff1f;答辩前1周降AI率完整攻略不延期方案&#xff01; 导师周一通知答辩、周五查出来知网 AIGC 检测 67%——这种倒计时场景每年 3-5 月毕业季都会上演几千次。 这种场景下选工具&#xff0c;最关键的不是「单价便宜」是「降不下来怎么办」。1 周时间…...

如何在5分钟内将你的普通鼠标变成macOS生产力神器

如何在5分钟内将你的普通鼠标变成macOS生产力神器 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在为macOS上鼠标滚轮生硬、侧键闲置而烦恼吗…...

从日偏食图像处理开始:手把手在VS2019里跑通你的第一个OpenCV 4.3程序

从日偏食图像处理开始&#xff1a;手把手在VS2019里跑通你的第一个OpenCV 4.3程序 当那张日偏食照片第一次在屏幕上成功显示时&#xff0c;仿佛打开了计算机视觉的大门。本文将带你从零开始&#xff0c;用VS2019和OpenCV 4.3实现这个充满仪式感的"Hello World"——不…...

如何快速掌握MRIcroGL:医学影像三维可视化的完整指南

如何快速掌握MRIcroGL&#xff1a;医学影像三维可视化的完整指南 【免费下载链接】MRIcroGL v1.2 GLSL volume rendering. Able to view NIfTI, DICOM, MGH, MHD, NRRD, AFNI format images. 项目地址: https://gitcode.com/gh_mirrors/mr/MRIcroGL MRIcroGL是一款功能强…...

终极跨平台语音识别解决方案:sherpa-onnx全平台部署实战指南

终极跨平台语音识别解决方案&#xff1a;sherpa-onnx全平台部署实战指南 【免费下载链接】sherpa-onnx Speech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet conne…...

从理论到实践:基于离散时间LQR的车辆运动学路径跟踪算法详解

1. 车辆路径跟踪的核心挑战 想象一下你正在玩遥控赛车游戏&#xff0c;手指在方向盘上微调方向&#xff0c;试图让车辆完美沿着赛道中心线行驶。这个看似简单的操作背后&#xff0c;其实隐藏着控制理论中经典的路径跟踪问题。在实际的自动驾驶或辅助驾驶系统中&#xff0c;工程…...

告别儿童遗忘悲剧:聊聊毫米波雷达如何实现车内活体检测(以TI方案为例)

告别儿童遗忘悲剧&#xff1a;毫米波雷达如何重塑车内安全防线 2021年夏天&#xff0c;美国得克萨斯州一位父亲在上班途中忘记将18个月大的女儿从汽车后座带出。当天下班时&#xff0c;室外温度已达38℃&#xff0c;等他在停车场找到孩子时&#xff0c;悲剧已经发生。类似事件在…...