我正在为 docker 和文件系统而苦苦挣扎。我想从我的 Java 应用程序的 docker 卷中写入一个文件。主要目标是在同一台机器上运行的另一个应用程序可以读取该文件。
我阅读了相关问题,但没有找到任何使用 java 应用程序解决此问题的答案。关于如何做到这一点的任何想法?
我正在为 docker 和文件系统而苦苦挣扎。我想从我的 Java 应用程序的 docker 卷中写入一个文件。主要目标是在同一台机器上运行的另一个应用程序可以读取该文件。
我阅读了相关问题,但没有找到任何使用 java 应用程序解决此问题的答案。关于如何做到这一点的任何想法?
基于您的另一个问题的答案:
所以你有两个需要共享文件系统的 docker 容器?假设您的 java 应用程序是容器化的,使用它来创建持久数据容器:
$ docker create -v /data --name mydata mydockerimage
使用此数据容器运行您的容器化程序
$ docker run -it --rm --volumes-from mydata mydockerimage create "/data/myfile.csv"
$ docker run -it --rm --volumes-from mydata mydockerimage read "/data/myfile.csv"
可以将文件拉出数据容器:
$ docker cp mydata:/data/myfile.csv myfile.csv
最后,您最终需要清理数据容器
$ docker rm -v mydata
您还没有说明您是如何构建或使用您的 java 程序的。我假设它是一个可以写入或读取 CSV 文件的可执行 jar:
java -jar myjar.jar create "/data/myfile.csv"
java -jar myjar.jar read "/data/myfile.csv"
有关如何构建此类容器的示例,请参见: