0Pricing
Docker & DevOps Fundamentals · 课时

使用 Docker 卷实现持久化

实现 Docker 卷,为容器化应用存储和管理持久化数据

使用 Docker 卷实现持久化 是 CoddyKit 上的免费 Docker & DevOps Fundamentals 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Docker & DevOps Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Docker & DevOps Fundamentals 课程共包含 4 节课。

为什么需要持久化数据?

容器的设计目标是轻量且临时。当容器被删除时,存储在其可写层中的任何数据都会永久丢失。

但是,如果应用需要保存数据库或用户文件等重要信息,该怎么办?这正是数据持久化的用武之地!

使用 Docker 卷实现持久化 — 插图 1

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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 容器网络基础
  2. 使用 Docker 卷实现持久化
  3. 绑定挂载与 tmpfs 挂载
  4. 自定义桥接网络与服务发现
← 返回 Docker & DevOps Fundamentals