0Pricing
Docker & DevOps Fundamentals · 课时

使用 Docker 卷管理数据

了解容器被删除后数据为何会丢失,并学习如何使用 Docker 卷和绑定挂载持久化与共享数据

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

容器是临时的

容器具有临时性:写入容器的任何内容都存在于容器内部,而删除容器会清除这些数据。对于无状态应用来说这没有问题,但数据库需要让数据持久保存。

可写层

每个容器的镜像之上都有一个薄薄的可写层。写入内容会保存到这一层,但它与容器的生命周期绑定——删除容器后,该层也会消失。

持久化数据的两种方式

Docker 提供两种持久化数据的方式:卷(由 Docker 管理)和绑定挂载(将主机文件夹映射到容器中)。默认情况下,建议使用卷。

创建卷

只需一条命令即可创建一个命名卷:docker volume create。Docker 会决定它在物理存储中的位置,您无需手动处理。

docker volume create app-data

挂载卷

使用 -v 和 volumeName:/path/in/container 附加一个卷。现在,写入该路径的所有内容都会持久保存在卷中。

docker run -d -v app-data:/var/lib/data myimage

数据在删除后仍然保留

由于卷独立于容器存在,您可以删除容器,再使用同一个卷启动新容器,数据仍会保留。

docker rm -f mycontainer
docker run -d -v app-data:/var/lib/data myimage

用于本地开发的绑定挂载

绑定挂载会将主机目录映射到容器中,非常适合开发场景:您在计算机上编辑代码后,修改会立即显示在容器内。

docker run -v /Users/me/project:/app node:20

卷与绑定挂载

请根据用途进行选择:生产数据适合使用可移植且由 Docker 管理的卷;开发时如果需要精确指定主机路径并进行完全控制,则适合使用绑定挂载。

检查卷

docker volume ls 会列出您的卷,docker volume inspect 会显示详细信息,包括数据实际存储在磁盘上的位置。

docker volume ls
docker volume inspect app-data

在容器之间共享数据

将一个卷挂载到多个容器中,这些容器就可以共享文件——例如,应用容器和备份容器都读取同一份数据。

docker run -v shared:/data writer
docker run -v shared:/data reader

清理

未使用的卷会浪费磁盘空间。您可以使用 docker volume rm 删除某个卷,或使用 docker volume prune 清除所有悬空卷——请谨慎操作,因为这会永久删除数据。

docker volume rm app-data
docker volume prune

快速检查

测试您对 Docker 数据的理解。

回顾

您已经学会了如何持久化数据:容器是临时的,卷在容器删除后仍会保留,并可使用 -v name:/path 挂载;而绑定挂载适合开发场景。

常见问题解答

「使用 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 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「使用 Docker 卷管理数据」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Docker & DevOps Fundamentals 课中编写并运行代码吗?

能。每节 Docker & DevOps Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 什么是容器
  2. 安装 Docker Desktop
  3. 您的第一个 Docker 容器
  4. 使用 Docker 卷管理数据
← 返回 Docker & DevOps Fundamentals