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

零基础学Docker(5)--容器数据卷

在 Docker 中,容器数据卷(Volume)是一种用于持久化存储容器数据的机制,它可以将容器内部的特定目录或文件与宿主机的文件系统建立关联,实现数据的持久化和共享。

数据卷的核心特点和作用:

  1. 数据持久化:容器在停止或删除后,其内部的数据会随之消失,而数据卷存储的数据不会受容器生命周期影响,即使容器被删除,数据仍然保存在宿主机上。
  2. 数据共享:多个容器可以挂载同一个数据卷,实现容器之间的数据共享和交互。
  3. 性能优化:数据卷直接绕过容器的文件系统,读写性能更接近宿主机的本地文件系统。
  4. 隔离性:数据卷由 Docker 管理,与宿主机的其他目录隔离,避免了权限混乱等问题。

使用数据卷的常见场景:

  • 存储数据库数据(如 MySQL、PostgreSQL 的数据文件)
  • 保存应用程序的配置文件
  • 共享日志文件
  • 在开发环境中实现代码的实时更新(将宿主机的代码目录挂载到容器中)

注意:挂载本质上是让不同的访问路径指向同一块存储空间,而不是复制或创建新的存储空间。

1. 使用数据卷

方式1:直接使用命令来挂载 -v

docker run -v 主机目录:容器内目录

(这里为了让centos启动后不自动结束,添加一个一个循环打印的任务)可以看到执行后在宿主机对应目录创建了文件夹

使用inspect命令可以查看是否挂载成功:

这里的Source就是宿主机的目录,Destination就是容器中的目录

前面我们说过挂载的本质是共用一块空间,那么我我们修改宿主机中的test文件夹的内容,容器内会不会改变,这里可以看到我们创建一个test.txt,并且输入了hello docker,接下来我们进入容器内:

可以看到文件是同步的,我们在容器内修改再试试:

可以看到也是同步的

2. 匿名挂载和具名挂载

挂载数据卷是可以指定名称的,刚才我们使用的方式叫做指定目录挂载本质上也属于匿名挂载,因为没有指定卷的名称,我们可以使用 volume ls命令查看:

同时,挂载时可以不指定宿主机的目录:

可以使用volume inspect 卷名 来查看具体信息:

可以看到具体挂载的目录位置:/var/lib/docker/volumes/卷名/_data。未指定目录创建的都会默认创建在这个目录下,注意:volume命令只能操作未指定目录创建的数据卷

具名挂载:

在原本放宿主机目录的位置写卷名即可,区分卷名和目录是以首个字符是否为/来区分

3. 设置权限

挂载的时候是可以设置权限的:

docker run -v 卷名:目录:[ro | rw]

ro代表只读,此时容器内部是无法对挂载目录执行写操作的

rw代表读写,默认创建时使用该权限

http://www.dtcms.com/a/414991.html

相关文章:

  • list列表
  • 团购网站做摄影网站编程开发
  • Kurt-Blender零基础教程:第4章:粒子篇
  • Qt常用控件之QTextEdit
  • ImageHash - Python 图像哈希库
  • 初识 Vue
  • 做网站销售水果上海建设安全协会网站
  • 正能量视频素材免费下载网站现代营销手段有哪些
  • Prj11-8088单板机C语言大综合(一)
  • 44.网络层
  • 肇庆网站制作软件郑州企业网络推广公司
  • ALLaM - 专为阿拉伯语设计的AI大语言模型
  • Docker Compose 停止命令对比
  • 北京网站推广优化更改wordpress端口
  • 优势的seo网站优化排名网站内容质量
  • Transformer 能做什么?—— 多领域应用全景
  • 认识RAG
  • 网站人员队伍建设薄弱怎么在自己做的网站上发视频教程
  • 摄影网站设计说明书东莞招聘信息最新招聘官方网
  • bevformer 安装 环境配置
  • 华为手机鸿蒙系统 4.2 / 4.3 安装谷歌框架的详细教程
  • 南昌网站开发爱网站长尾
  • 工业摄像头是应用于工业现场的高性能数字图像采集设备
  • 【08】VisionMaster入门到精通——卡尺工具和边缘查找
  • RRateLimiter的使用
  • 做网站html整合资源加强全市网站建设
  • 使用opencv来识别信用卡的号码
  • 【rabbitmq 高级特性】全面详解RabbitMQ重试机制
  • 在飞腾D2000/8平台下ubuntu内核添加WX1860和WX1820的驱动
  • docker相关进程的作用