当前位置: 首页 > 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;我将讨论这样一种工具--正则表达式。正则表达式是…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...