【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
  • 查看状态:pvs, vgs, lvs

主要区别

  • 应用场景

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

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

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

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

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

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

相关推荐
c语言中的小小白16 分钟前
Linux之进程概念
linux·运维·服务器
去往火星18 分钟前
ubuntu22.04取消开机输入密码(实测)
linux·运维·服务器
极客先躯22 分钟前
Hadoop-HDFS-core-site.xml,hdfs-site.xml,yarn-site.xml,krb5.conf 都是做什么的?
xml·运维·hadoop·hdfs
万界星空科技33 分钟前
MES系统实现制造业生产自动化、智能化与透明化
运维·经验分享·科技·5g·能源·制造·业界资讯
DuoRuaiMiFa36 分钟前
Replit Agent:AI驱动的全自动化软件开发革命
运维·人工智能·自动化
liaozk_c1 小时前
Docker 进入容器命令详解
docker·容器
day3ZY1 小时前
怎么查看网站是否被谷歌收录,查看网站是否被搜索引擎收录5个方法与步骤
运维·前端·搜索引擎
Java追光着1 小时前
Linux防火墙配置绿色端口,解决无法访问java服务的问题
java·linux·运维
江南剑雨1 小时前
jenkinsfile实现镜像构建、发布
linux·运维·jenkins
不烦下雨c2 小时前
[网络]NAT、代理服务、内网穿透、内网打洞
运维·服务器·网络