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

总结

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

相关推荐
魂尾ac7 分钟前
Centos Docker 安装(100%成功)
linux·docker·centos
張萠飛35 分钟前
Linux中程序的limits中的Max open files的配置由哪些参数决定
linux·运维·服务器
Johny_Zhao7 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple7 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
一心0928 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上8 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊9 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
代码老y9 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程10 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
DuelCode10 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis