使用 Docker 卷实现持久化
实现 Docker 卷,为容器化应用存储和管理持久化数据
使用 Docker 卷实现持久化 是 CoddyKit 上的免费 Docker & DevOps Fundamentals 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Docker & DevOps Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Docker & DevOps Fundamentals 课程共包含 4 节课。
为什么需要持久化数据?
容器的设计目标是轻量且临时。当容器被删除时,存储在其可写层中的任何数据都会永久丢失。
但是,如果应用需要保存数据库或用户文件等重要信息,该怎么办?这正是数据持久化的用武之地!

Docker 卷简介
Docker 卷是在 Docker 中持久化存储应用数据的最佳方式。与直接存储在容器中的数据不同,卷由 Docker 管理,并独立于任何特定容器而存在。
- 它们存储在由 Docker 管理的主机文件系统部分中。
- 它们针对输入/输出性能进行了优化。
- 它们易于备份或迁移。
创建您的第一个卷
让我们创建一个命名卷。命名卷很简单:您为它指定一个名称,Docker 会处理其余所有事情。
使用 docker volume create 命令,后面跟上您所需的卷名称。
docker volume create my_data_volume列出您的卷
创建卷后,您可以在系统中所有现有的 Docker 卷中看到它。
使用 docker volume ls 命令查看这些卷。
docker volume ls在容器中使用卷
现在,让我们运行一个容器,并将刚创建的卷附加到它上面。为此,我们使用 -v 标志。
格式为 -v volume_name:container_path。这会将 my_data_volume 挂载到 nginx 容器内的 /app/data。
docker run -d --name my_app_with_volume -v my_data_volume:/app/data nginx将数据存储在卷中
让我们从正在运行的容器内部,将一些数据写入已挂载的卷。我们将使用 docker exec 在容器内运行命令。
数据将保存在容器内的 /app/data/message.txt,实际上它存储在 my_data_volume 中。
docker exec my_app_with_volume sh -c "echo 'Hello from CoddyKit!' > /app/data/message.txt"删除容器后数据仍然存在
卷的核心优势是数据持久性!让我们验证这一点。
首先,我们将停止并删除容器。然后,运行一个*新的*容器,附加*同一个*卷,以读取之前写入的数据。
docker stop my_app_with_volume
docker rm my_app_with_volume
docker run --rm -it -v my_data_volume:/app/data alpine sh -c "cat /app/data/message.txt"检查卷的详细信息
您可以使用 docker volume inspect 命令获取卷的详细信息。它会显示卷名称、驱动程序,以及尤其重要的主机文件系统中的挂载点。
docker volume inspect my_data_volume清理卷
请记住,卷独立于容器存在。如果您不再需要某个卷,必须明确将其删除。
使用 docker volume rm。请务必谨慎,因为这会永久删除数据!
docker volume rm my_data_volume快速检查卷
现在来回答一个快速问题,检验您对 Docker 卷的理解!
卷:持久化数据的关键
做得很好!您已经学会了 Docker 卷如何为持久化数据存储提供可靠的解决方案。
- 即使容器被删除,卷也能保护您的数据。
- 卷由 Docker 管理,因此具有更好的性能和可移植性。
- 您可以使用简单的命令创建、列出、检查和删除卷。
接下来,我们将探索绑定挂载,这是另一种管理数据的方式,但适用于不同的场景。
常见问题解答
「使用 Docker 卷实现持久化」课时是免费的吗?
是的 — 「使用 Docker 卷实现持久化」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Docker & DevOps Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Docker & DevOps Fundamentals 课程共包含 4 节课。
「使用 Docker 卷实现持久化」这节课中我会学到什么?
实现 Docker 卷,为容器化应用存储和管理持久化数据 你通过在浏览器中直接运行的动手代码来练习 Docker & DevOps Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Docker & DevOps Fundamentals 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Docker & DevOps Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「使用 Docker 卷实现持久化」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Docker & DevOps Fundamentals 课中编写并运行代码吗?
能。每节 Docker & DevOps Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 容器网络基础
- 使用 Docker 卷实现持久化
- 绑定挂载与 tmpfs 挂载
- 自定义桥接网络与服务发现