Docker数据卷与拦截与目录拦截

目录

高级容器挂载技术深度解析

引言

容器技术的快速发展使得容器挂载技术变得愈发重要。在容器化应用中,数据卷挂载和目录挂载是两种常见的挂载方式,它们为容器提供了持久化存储和文件共享的能力。本文将深入探讨数据卷挂载和目录挂载的原理、应用场景以及最佳实践,帮助读者更好地理解和应用这些高级容器挂载技术。

数据卷挂载

原理解析

数据卷是容器中持久化存储数据的一种方式,它可以在容器之间共享数据,并且可以在容器被删除后保留数据。数据卷挂载是将主机上的目录或文件挂载到容器中,实现数据的共享和持久化存储。

应用场景

数据共享:多个容器需要访问相同的数据时,可以通过数据卷挂载实现数据共享,避免数据冗余和一致性问题。

数据持久化:容器中的数据需要持久化保存时,可以使用数据卷挂载将数据存储到主机上,确保数据不会随容器的销毁而丢失。

使用介绍

为了很好的实现数据保存和数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合

文件系统,而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。

复制代码
 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
  • 数据卷 可以在容器之间共享和重用
  • 对 数据卷 的修改会立马生效
  • 对 数据卷 的更新,不会影响镜像
  • 数据卷 默认会一直存在,即使容器被删除

创建数据卷

java 复制代码
 docker volume create my-vol

查看所有数据卷

java 复制代码
docker volume ls

查看数据卷信息

java 复制代码
docker volume inspect my-vol

删除一个volume

java 复制代码
docker volume rm my-vo

数据卷 是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动

删除数据卷,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷,无主的数据卷

可能会占据很多空间,所以要及时删除.

挂载数据卷

在用 docker run 命令的时候,使用 --mount 标记来将 数据卷 挂载到容器里。在一次 docker

run 中可以挂载多个 数据卷 。

java 复制代码
docker run -itd \
--name 容器名字 \
--mount source=数据卷名称,target=容器中的对应目录 \
镜像名称

最好是通过run而非create/start创建启动容器,create/start命令创建启动容器后,再挂载数据卷

相当麻烦,要修改很多配置文件,但并非不可以

查看数据卷的具体信息

java 复制代码
在这里插入代码片

目录挂载

原理解析

目录挂载是将主机上的目录挂载到容器中,使得容器可以访问主机上的文件系统。目录挂载可以用于配置文件的共享、日志文件的收集等场景。

应用场景

配置文件挂载:将主机上的配置文件挂载到容器中,实现配置的动态更新和共享。

日志文件挂载:将容器中的日志文件挂载到主机上,方便日志的收集和分析。

使用介绍

创建运行

java 复制代码
docker run -itd \
--name 容器名字 \
--mount type=bind,source=宿主机目录,target=容器中的对应目录 \
镜像名称

数据卷容器

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。

数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。

创建数据卷容器

java 复制代码
docker run -itd --name name -v dir centos

挂载数据卷容器

java 复制代码
docker run -itd --name name --volumes-from db_data centos

总结

数据卷挂载和目录挂载是容器挂载技术中的两种重要方式,它们为容器提供了灵活的存储和文件共享能力。深入理解这些挂载技术的原理和应用场景,对于构建高可靠、高性能的容器化应用至关重要。希望本文能够帮助读者更好地掌握这些高级容器挂载技术,提升容器化应用的水平。

相关推荐
独隅2 小时前
GitHub Actions 自动化运维实战:CI/CD 流水线一体化效果展示
运维·自动化·github
饺子大魔王的男人2 小时前
CentOS部署Cockpit:图形化查看系统、日志与服务状态
linux·运维·centos
不会就选b2 小时前
Linux之信号(二)
linux·运维·服务器
qq_267612893 小时前
Gitee项目管理推荐:从工具链割裂到DevOps全链路贯通的企业级协作实践
运维·gitee·devops
寺中人4 小时前
Linux 基础命令入门实战教程:从零掌握常用操作,新手快速上手
linux·运维·服务器·shell·linux 命令·linux 基础教程·linux 入门
V哥AI增长4 小时前
Schema.org 结构化数据与GEO技术落地:AI引擎引用机制与JSON-LD部署实证研究
大数据·运维·人工智能
小张成长计划..5 小时前
【Linux】18:基础IO
linux·运维·服务器
童槿顏丶5 小时前
docker自动化部署脚本
docker·eureka·自动化
东东最爱敲键盘6 小时前
二阶段总结
运维
Benszen6 小时前
云计算基础-13:Linux网络管理实战-1
linux·运维·云计算