如何将应用程序映射到 docker 卷

How to map application to docker volume

我是 docker 的新手,我一直在尝试 运行 一个在 tomcat 图像上部署我的 Java 网络应用程序的容器。问题是我的应用程序必须读取和写入它在我的机器上访问的文件,并且当应用程序的 .war 文件作为 docker 容器部署在 tomcat 上时,它无法找到该文件,因为该文件不再被识别。我试图看看如何解决这个问题并遇到了 docker 卷。我想将我的文件存储在一个卷中,然后让我的应用程序从中检索数据,但我找不到方法来做到这一点。我一直在寻找一种方法来查看如何修改我的应用程序中的路径以指向 docker 卷中的文件,但我找不到任何东西。也许我错过了一些东西,因为我一直在尝试了解有关 docker 卷的更多信息?请指出执行此操作的正确方法,或者提供一个有用的 link 来说明如何完成类似的操作,或者如果我对这种方法完全错误,请告诉我。

这是关于卷和挂载的官方文档 https://docs.docker.com/storage/volumes/

这是一个关于如何将 mysql 容器装载到您的驱动器的示例,即使容器被删除,这也是保留数据的好主意。 看点“数据存储在哪里”

https://hub.docker.com/_/mysql/

这是 docker compose 的一个非常短的版本,用于将容器内的文件夹挂载到外部文件夹

volumes:
  - /var/mysql:/var/lib/mysql

*这只是完整 docker-compose 文件中的 2 行,但应该演示如何装载数据。

“:”左侧的文件夹是您的数据在驱动器上所在的文件夹 “:”左侧的文件夹指的是容器内的哪个文件夹。

当您在文件夹“./datafolder”中查找文件时 您应该将容器内的文件夹 ./ 挂载到包含 'datafolder'

的驱动器上的文件夹