绑定挂载与 tmpfs 挂载
了解用于访问主机文件的绑定挂载,以及用于临时数据存储的 tmpfs 挂载
绑定挂载与 tmpfs 挂载 是 CoddyKit 上的免费 Docker & DevOps Fundamentals 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Docker & DevOps Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Docker & DevOps Fundamentals 课程共包含 4 节课。
卷之外的数据存储
在之前的课程中,我们学习了如何使用 Docker 卷进行持久化数据存储。但是,如果您需要直接共享主机计算机中的文件,或者存储不需要持久化的临时数据,该怎么办呢?
本课程将介绍另外两种数据管理方式:绑定挂载和 tmpfs 挂载。它们可以灵活适应不同的使用场景。

什么是绑定挂载
绑定挂载允许您将主机计算机中的文件或目录挂载到容器中。这样会建立直接链接,因此任一侧发生的更改都会立即反映到另一侧。
- 主机路径:计算机上的位置。
- 容器路径:容器内的位置。
- 非常适合开发、共享配置或访问主机文件。
绑定挂载实战
让我们看看绑定挂载的实际用法。此命令会将当前目录(在 Linux/macOS 上由 $(pwd) 表示,在 Windows CMD 上由 %cd% 表示)挂载到容器的 /app 目录中。
注意:运行前,请在当前目录中创建一个名为 hello.txt 的文件,并写入类似 “Hello from host!” 的文本。
docker run --rm -it \
-v "$(pwd):/app" \
alpine:latest sh -c "ls /app && cat /app/hello.txt"只读绑定挂载
有时您希望共享主机中的数据,但不允许容器进行更改。这时,只读绑定挂载就很有用。
您可以在挂载路径末尾指定 :ro,或将 readonly 与 --mount 标志一起使用来实现这一点。
docker run --rm -it \
-v "$(pwd):/app:ro" \
alpine:latest sh -c "touch /app/new_file.txt || echo 'Permission denied!'"理解只读输出
运行上一条命令时,您应该看到了 “Permission denied!” 消息。这表明容器无法在 /app 目录中创建新文件,因为该目录以只读方式挂载。
这是一项很好的安全功能,可以保护您的主机文件免受容器意外或恶意的更改。
什么是 tmpfs 挂载
tmpfs 挂载是一种完全存储在主机内存(RAM)中的临时文件系统。这意味着写入 tmpfs 挂载的数据不会持久化。
- 容器停止时,数据会丢失。
- 与基于磁盘的存储相比,输入输出速度更快。
- 适合存储敏感数据或临时文件。
tmpfs 挂载实战
让我们创建一个带有 tmpfs 挂载的容器。我们会向其中写入一个文件,然后退出容器。当您运行新容器时,该文件将消失。
--tmpfs 标志用于指定容器内的挂载点。
docker run --rm -it \
--tmpfs /app/temp_data \
alpine:latest sh -c "echo 'Ephemeral data' > /app/temp_data/my_temp_file.txt && ls /app/temp_data"验证 tmpfs 的临时特性
运行上一条命令后,您看到了列出的 my_temp_file.txt。现在,运行此命令,以相同的 tmpfs 挂载配置启动一个*新的*容器。
您会注意到,my_temp_file.txt 已经不存在了。这证实了 tmpfs 数据确实是临时的,并且只在容器的生命周期内存在。
docker run --rm -it \
--tmpfs /app/temp_data \
alpine:latest ls /app/temp_data绑定挂载与 tmpfs 挂载
应该在什么时候使用它们?
- 绑定挂载:用于与容器共享主机文件(例如配置文件和源代码),确保数据持久化并能直接访问主机。
- tmpfs 挂载:用于临时且不持久化的数据,这些数据需要高性能,或不应在容器重启后保留(例如缓存和敏感的运行时数据)。
两者都可以补充 Docker 卷,为数据管理提供完整的选择。
快速检查:挂载类型
以下关于绑定挂载和 tmpfs 挂载的说法,哪些是正确的?
回顾:数据管理工具
做得非常好!您已经扩展了 Docker 数据管理工具集。
- 绑定挂载将主机文件或目录链接到容器,非常适合开发和共享配置。
- tmpfs 挂载提供临时的内存存储,非常适合不需要持久化的数据或敏感数据。
了解这些选项有助于您为容器化应用选择合适的存储解决方案。
常见问题解答
「绑定挂载与 tmpfs 挂载」课时是免费的吗?
是的 — 「绑定挂载与 tmpfs 挂载」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Docker & DevOps Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Docker & DevOps Fundamentals 课程共包含 4 节课。
「绑定挂载与 tmpfs 挂载」这节课中我会学到什么?
了解用于访问主机文件的绑定挂载,以及用于临时数据存储的 tmpfs 挂载 你通过在浏览器中直接运行的动手代码来练习 Docker & DevOps Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Docker & DevOps Fundamentals 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Docker & DevOps Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「绑定挂载与 tmpfs 挂载」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Docker & DevOps Fundamentals 课中编写并运行代码吗?
能。每节 Docker & DevOps Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 容器网络基础
- 使用 Docker 卷实现持久化
- 绑定挂载与 tmpfs 挂载
- 自定义桥接网络与服务发现