将主机上docker映射卷的文件路径持久化到数据库中
我拥有:一个spring启动应用程序,作为/在docker容器中运行。此应用程序提供了将文件上载到docker容器内目录的机会。我还指定了服务器/主机上指向此目录的卷映射将主机上docker映射卷的文件路径持久化到数据库中,docker,Docker,我拥有:一个spring启动应用程序,作为/在docker容器中运行。此应用程序提供了将文件上载到docker容器内目录的机会。我还指定了服务器/主机上指向此目录的卷映射 我需要的是:将主机目录(docker volume?)的路径(指向docker容器中的目录)持久化到数据库中,以便以后引用它。我如何才能做到这一点?IIUC没有从容器内部确定卷映射的内在方法 您可以通过向流程传递环境变量并确信其值是正确的来实现这一点: V=/path/to/src docker run .... \ --en
我需要的是:将主机目录(docker volume?)的路径(指向docker容器中的目录)持久化到数据库中,以便以后引用它。我如何才能做到这一点?IIUC没有从容器内部确定卷映射的内在方法 您可以通过向流程传递环境变量并确信其值是正确的来实现这一点:
V=/path/to/src
docker run .... \
--env=V=${V} \
--volume=${V}/path/to/dst \
...
通过将数据从主机的作用域传递到容器的作用域,您正在涂抹容器周围的边界。我想不出一个好的理由,容器需要知道主机不可访问的卷共享路径。
docker inspect
可能会显示它,但只有当docker套接字本身可用时,容器才能访问它。我喜欢使用环境变量来共享位置,并且在卷中使用可以确保它是正确的。我认为一个进程最好不要假设它正在容器(Docker或其他容器)中运行。使用环境解决了这一问题。但是,暴露无法从容器范围访问的主机路径会迫使我们做出这种假设。装载源与容器无关,因为它必须在容器启动之前提供。它应该是主机级编排的一部分,就像拉取映像并启动它一样。