Docker教程 · 2024年11月11日

保留容器数据

保留容器数据

本演练向您展示如何在容器之间保留数据。为了更好地理解本演练中的一些概念,请首先完成 演练。

Docker 将容器中的所有内容、代码和数据与本地文件系统隔离。当您删除容器时,Docker 会删除该容器内的所有内容。

保留容器数据插图
保留容器数据插图1

有时,您可能希望保留容器生成的数据。为此,您可以使用卷。

在开始之前,请获取最新版本的 。 Docker 定期添加新功能,本指南的某些部分可能仅适用于最新版本的 Docker Desktop。

如果您有 git,则可以克隆示例应用程序的存储库。否则,您可以下载示例应用程序。选择以下选项之一。

使用 git 克隆 下载


在终端中使用以下命令来克隆示例应用程序存储库。


$ git clone https://github.com/docker/multi-container-app 

下载源代码并解压。


要在删除容器后保留数据,请使用卷。卷是本地文件系统中的一个位置,由 Docker Desktop 自动管理。

保留容器数据插图2
保留容器数据插图3

要向此项目添加卷,请compose.yaml在代码或文本编辑器中打开该文件,然后取消注释以下行。


todo-database:  # ...  volumes:  - database:/data/db  # ... volumes:  database:

volumes嵌套在下面的元素告诉todo-databaseCompose 将指定的卷挂载database/data/dbtodo-database 服务的容器中。

顶级volumes元素定义并配置一个名为 的卷database,该卷可由 Compose 文件中的任何服务使用。

要运行多容器应用程序,请打开终端并运行以下命令。替换/path/to/multi-container-app/为应用程序目录的路径。

提示

要运行 Docker 命令,您必须使用终端。根据您的操作系统,您可以通过执行以下操作打开终端:

对于 Windows,选择“开始”菜单,指定cmd,然后选择 “命令提示符”

对于 Mac,请选择Dock 中的LaunchpadTerminal图标,在搜索字段中进行指定,然后选择“终端”


$ cd /path/to/multi-container-app/ 


$ docker compose up -d 

在Docker Desktop 的“容器”选项卡中,您现在应该有一个应用程序堆栈,其中有两个正在运行的容器(todo-app 和 todo-database)。

查看前端并添加待办事项:

  1. 在 Docker Desktop 中,在Containers中展开应用程序堆栈。
  2. 端口列中选择端口3000的链接或打开 ⁠。
  3. 在前端添加一些待办事项。

现在,无论您删除和重新创建容器的频率如何,Docker Desktop 都会保留您的数据,并且系统上的任何容器都可以通过安装卷来访问这些数据database。 Docker Desktop 会查找该database卷,如果不存在则创建它。

删除应用程序堆栈:

  1. 打开Docker Desktop 的容器选项卡
  2. 选择应用程序堆栈旁边的删除图标。

保留容器数据插图4
保留容器数据插图5

删除应用程序堆栈后,请按照 的步骤重新运行应用程序。请注意,当您删除容器并再次运行它们时,Docker Desktop 会保留您创建的所有待办事项。

在本演练中,您使用卷在容器之间保留数据。您可以使用它来在隔离和临时容器之间保存和共享数据。

相关信息:

  • 深入研究
  • 中了解有关在 Compose 中使用卷的信息
  • 和 中探索通过 CLI 使用卷

继续下一个演练,了解如何从容器访问本地目录。