Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将主机上docker映射卷的文件路径持久化到数据库中_Docker - Fatal编程技术网

将主机上docker映射卷的文件路径持久化到数据库中

将主机上docker映射卷的文件路径持久化到数据库中,docker,Docker,我拥有:一个spring启动应用程序,作为/在docker容器中运行。此应用程序提供了将文件上载到docker容器内目录的机会。我还指定了服务器/主机上指向此目录的卷映射 我需要的是:将主机目录(docker volume?)的路径(指向docker容器中的目录)持久化到数据库中,以便以后引用它。我如何才能做到这一点?IIUC没有从容器内部确定卷映射的内在方法 您可以通过向流程传递环境变量并确信其值是正确的来实现这一点: V=/path/to/src docker run .... \ --en

我拥有:一个spring启动应用程序,作为/在docker容器中运行。此应用程序提供了将文件上载到docker容器内目录的机会。我还指定了服务器/主机上指向此目录的卷映射


我需要的是:将主机目录(docker volume?)的路径(指向docker容器中的目录)持久化到数据库中,以便以后引用它。我如何才能做到这一点?

IIUC没有从容器内部确定卷映射的内在方法

您可以通过向流程传递环境变量并确信其值是正确的来实现这一点:

V=/path/to/src
docker run .... \
--env=V=${V} \
--volume=${V}/path/to/dst \
...

通过将数据从主机的作用域传递到容器的作用域,您正在涂抹容器周围的边界。我想不出一个好的理由,容器需要知道主机不可访问的卷共享路径。
docker inspect
可能会显示它,但只有当docker套接字本身可用时,容器才能访问它。我喜欢使用环境变量来共享位置,并且在卷中使用可以确保它是正确的。我认为一个进程最好不要假设它正在容器(Docker或其他容器)中运行。使用环境解决了这一问题。但是,暴露无法从容器范围访问的主机路径会迫使我们做出这种假设。装载源与容器无关,因为它必须在容器启动之前提供。它应该是主机级编排的一部分,就像拉取映像并启动它一样。