Docker教程 · 2024年11月11日

从容器访问本地文件夹

从容器访问本地文件夹

本演练向您展示如何从容器访问本地文件夹。为了更好地理解本演练中的一些概念,请首先完成 演练。

Docker 将容器中的所有内容、代码和数据与本地文件系统隔离。默认情况下,容器无法访问本地文件系统中的目录。

从容器访问本地文件夹插图
从容器访问本地文件夹插图1

有时,您可能想从本地文件系统访问目录。为此,您可以使用绑定安装。

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

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

使用 git 克隆 下载


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


$ git clone https://github.com/docker/bindmount-apps 

下载源代码并解压。


添加绑定挂载以从容器访问系统上的数据。绑定挂载允许您将主机文件系统中的目录共享到容器中。

从容器访问本地文件夹插图2
从容器访问本地文件夹插图3

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


todo-app:  # ...  volumes:  - ./app:/usr/src/app  - /usr/src/app/node_modules

volumes元素告诉 Compose 将本地文件夹装载./app到服务/usr/src/app的容器中todo-app。这种特定的绑定安装会覆盖容器中目录的静态内容/usr/src/app并创建所谓的开发容器。第二条指令/usr/src/app/node_modules防止绑定安装覆盖容器的node_modules目录以保留容器中安装的包。

在终端中,运行以下命令来启动您的应用程序。替换/path/to/bindmount-apps/为应用程序目录的路径。

提示

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

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

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


$ cd /path/to/bindmount-apps/ 


$ docker compose up -d 

现在,您可以在本地系统上开发应用程序时利用容器环境。您对本地系统上的应用程序所做的任何更改都会反映在容器中。在本地目录中,app/views/todos.ejs在代码或文本编辑器中打开,更新Enter your task字符串,然后保存文件。访问或刷新 ⁠ 以查看更改。

在本演练中,您添加了绑定装载以从容器访问本地文件夹。您可以使用它来更快地开发,而无需在更新代码时重建容器。

相关信息:

  • 深入研究
  • 中了解如何在 Compose 中使用绑定挂载
  • 中探索通过 CLI 使用绑定挂载

继续下一个演练,了解如何容器化您自己的应用程序。