Docker 中如何使用数据卷进行数据持久化

阅读时长 4 分钟读完

在 Docker 中,数据卷是一种可以将主机文件系统中的目录或文件映射到容器中的机制。使用数据卷可以将容器中的数据进行持久化存储,保证数据不被删除或丢失。在本文中,我们将探讨 Docker 中如何使用数据卷进行数据持久化。

Docker 中数据卷的使用

Docker 中的数据卷有三种使用方法:

  1. 内置数据卷

内置数据卷是 Docker 自带的,可以直接在命令行中使用 -v 参数来指定数据卷,例如:

这个命令将本地目录 /host/dir 映射到容器中的 /container/dir 目录,容器中所做的任何更改都将反映在本地目录中。

  1. 命名数据卷

命名数据卷是可命名的数据卷,旨在在容器之间分享数据。可以使用 docker volume create 命令来创建命名数据卷,例如:

这个命令将命名数据卷 my-data 映射到容器中的 /container/dir 目录。

  1. 匿名数据卷

匿名数据卷是在容器中创建的,仅应用程序可以访问。可以通过在 Dockerfile 中使用 VOLUME 命令来创建匿名数据卷,例如:

Docker 中数据卷的用途

使用数据卷的主要用途是确保容器中的数据在容器被删除后不会丢失。在以下情况下特别有用:

  • 在多个容器之间共享数据。
  • 切换容器时,保留应用程序配置和数据。
  • 确保持续交付应用程序时数据不会丢失。

Docker 中使用数据卷的示例

假设我们有一个 Node.js 应用程序,并且数据保存在 /app/data 目录中。我们想要在 Docker 容器中运行这个应用程序,并在容器被删除后仍然能够访问数据。我们可以使用以下示例代码:

以上命令将本地目录 /app/data 映射到容器中的 /usr/src/app/data 目录,并将容器中的端口 8080 映射到主机的端口 8080。

在以上例子中,如果我们停止容器,数据将保留在本地的 /app/data 目录中,即使删除容器,数据也不会丢失。

Docker 中数据卷的备份和还原

备份容器中的数据卷可以用来创建容器的快速副本,还原数据卷则可以在容器崩溃或数据损坏时恢复数据。

使用 docker run 命令时添加 -v 参数,指定容器中的数据卷,如:

其中 /host/dir 是本地文件系统上的目录,而 /container/dir 是容器中的目录。

将数据卷备份到 tar 文件中:

将从 tar 文件中恢复数据卷到容器中:

Docker 中数据卷的注意事项

  • 要使用数据卷,必须指定一个挂载点,即在 Dockerfile 或者 docker run 命令中指定。
  • 同一个数据卷可以在多个容器中使用。
  • 存储在数据卷中的文件可以被所有容器访问,需要注意文件权限等问题。
  • 数据卷可以在容器运行时创建或删除,并且可以从一个容器传递到另一个容器。

结论

使用 Docker 中的数据卷可以为容器中的数据提供持久化存储,确保容器被删除后不会丢失数据,同时也方便了数据共享和备份。对于想要在 Docker 环境下部署应用程序的前端工程师来说,这是一个非常重要的概念和技能。希望本文能对大家有所帮助!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/677361556d66e0f9aae29701

纠错
反馈