理解容器挂载点

容器中新创建的文件基于挂载点(工作目录)创建

为什么?

将硬盘分区格式化后便能存入数据,这时必须通过一个工作目录来操作文件系统(可以是任意目录)只要将文件系统挂载到工作目录,便可以通过目录操作文件系统。

文件系统必须挂载到某个目录才能通过路径访问;相对路径创建文件时以当前工作目录为起点解析路径。只要文件系统挂载到工作目录,你就能通过这个目录来操作文件系统,容器内创建的文件自然会落到该挂载点对应的存储位置上。

文件系统能存数据,但必须先"挂载"才能被操作

硬盘分区格式化之后,文件系统结构已经建立,具备了存入数据的能力。但在 Linux 里,磁盘分区并不会自动变成你可以 cd 进入的目录。Linux 采用统一的目录树结构,所有文件和目录都必须在这棵树上通过路径来访问。

因此,一个独立的文件系统想要被使用,必须先挂载到目录树中的某个目录上。这个目录就是挂载点,也可以理解为"工作目录入口"。挂载点可以是任意已经存在的目录,例如 /data/mnt/disk1。只要将文件系统挂载到这个目录,你就可以通过对该目录及其子目录的操作,来读写这个文件系统中的内容。

换句话说,文件系统真正存放数据,但你操作它的方式是"通过目录"。目录只是入口,挂载把入口与某个文件系统绑定在一起。

容器里的目录同样依赖挂载,工作目录决定了相对路径的落点

容器本质上运行的是 Linux 进程,文件创建依然遵循 Linux 的规则。创建文件时,如果使用的是相对路径(例如 touch a.txt),系统会以当前工作目录作为起点来解析路径。当前目录是哪里,文件就会创建到哪里。

容器场景中,工作目录往往被固定在某个路径上,或者被你在启动容器时显式指定。更常见的是,这个工作目录恰好是一个挂载点,例如把宿主机目录或数据卷挂载到了容器的 /app/data 之类的位置。此时你在该目录下创建的文件,看起来就是"基于挂载点创建",因为你对目录的写入实际落在挂载进来的文件系统上。

这也是为什么有时你删除容器后文件还在,因为文件写到了挂载进来的卷或宿主机目录里;而有时删除容器文件就消失了,因为写入发生在容器自身的可写层里。

相关推荐
飞翔沫沫情2 小时前
kubeadm部署 Kubernetes(k8s) 高可用集群 V1.32
云原生·容器·kubernetes
YMWM_2 小时前
cursor连接Ubuntu远程
linux·运维·ubuntu
Python-AI Xenon2 小时前
RHEL/CentOS 7.9环境中离线安装Telnet服务完整指南
linux·运维·telnet·rhel7.9
Trouvaille ~2 小时前
【Linux】进程信号(三):信号捕捉与操作系统运行原理
linux·运维·服务器·c++·操作系统·信号·中断
zl_dfq2 小时前
Linux 之 【进程间通信】(消息队列与信号量、Systrm VIPC在内核中数据结构设计)
linux
信创天地2 小时前
国产化数据库深度运维:性能调优与故障排查实战指南
运维·数据库·安全·elk·自动化·rabbitmq
木卫二号Coding2 小时前
Docker-构建自己的Web-Linux系统-镜像colinchang/ubuntu-desktop:22.04
linux·ubuntu·docker
维度攻城狮2 小时前
Ubuntu突然无法中文输入的问题解决办法
linux·运维·ubuntu
Coder个人博客2 小时前
Linux6.19-ARM64 mm Makefile子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构