保留容器数据
本演练向您展示如何在容器之间保留数据。为了更好地理解本演练中的一些概念,请首先完成 运行多容器应用程序演练。
Docker 将容器中的所有内容、代码和数据与本地文件系统隔离。当您删除容器时,Docker 会删除该容器内的所有内容。


有时,您可能希望保留容器生成的数据。为此,您可以使用卷。
在开始之前,请获取最新版本的 Docker Desktop。 Docker 定期添加新功能,本指南的某些部分可能仅适用于最新版本的 Docker Desktop。第 1 步:获取示例应用程序
如果您有 git,则可以克隆示例应用程序的存储库。否则,您可以下载示例应用程序。选择以下选项之一。
步骤 2:添加卷以保存数据
要在删除容器后保留数据,请使用卷。卷是本地文件系统中的一个位置,由 Docker Desktop 自动管理。


要向此项目添加卷,请compose.yaml
在代码或文本编辑器中打开该文件,然后取消注释以下行。
todo-database:
# ...
volumes:
- database:/data/db
# ...
volumes:
database:
volumes
嵌套在下面的元素告诉todo-database
Compose 将指定的卷挂载database
到/data/db
todo-database 服务的容器中。
顶级volumes
元素定义并配置一个名为 的卷database
,该卷可由 Compose 文件中的任何服务使用。
第 3 步:运行应用程序
要运行多容器应用程序,请打开终端并运行以下命令。替换/path/to/multi-container-app/
为应用程序目录的路径。
提示
要运行 Docker 命令,您必须使用终端。根据您的操作系统,您可以通过执行以下操作打开终端:
对于 Windows,选择“开始”菜单,指定
cmd
,然后选择 “命令提示符”。对于 Mac,请选择Dock 中的Launchpad
Terminal
图标,在搜索字段中进行指定,然后选择“终端”。
$ cd /path/to/multi-container-app/
$ docker compose up -d
第 4 步:查看前端并添加待办事项
在Docker Desktop 的“容器”选项卡中,您现在应该有一个应用程序堆栈,其中有两个正在运行的容器(todo-app 和 todo-database)。
查看前端并添加待办事项:
- 在 Docker Desktop 中,在Containers中展开应用程序堆栈。
- 在端口列中选择端口3000的链接或打开 http://localhost:3000 。
- 在前端添加一些待办事项。
第5步:删除应用程序堆栈并运行新容器
现在,无论您删除和重新创建容器的频率如何,Docker Desktop 都会保留您的数据,并且系统上的任何容器都可以通过安装卷来访问这些数据database
。 Docker Desktop 会查找该database
卷,如果不存在则创建它。
删除应用程序堆栈:
- 打开Docker Desktop 的容器选项卡
- 选择应用程序堆栈旁边的删除图标。


删除应用程序堆栈后,请按照 步骤 3:运行应用程序中的步骤重新运行应用程序。请注意,当您删除容器并再次运行它们时,Docker Desktop 会保留您创建的所有待办事项。
概括
在本演练中,您使用卷在容器之间保留数据。您可以使用它来在隔离和临时容器之间保存和共享数据。
相关信息:
- 深入研究 卷
- 在Compose 文件参考中了解有关在 Compose 中使用卷的信息
- 在docker 卷 CLI 参考和 Docker 运行参考中探索通过 CLI 使用卷
下一步
继续下一个演练,了解如何从容器访问本地目录。