我正在运行一个Java应用程序,该应用程序以给定格式读取一些数据,并将CSV文件写入temp目录。完全写入此文件后,数据将批量加载到数据库中。加载完成后,将立即删除文件。此文件不应共享。
现在,我想在Docker容器中运行此应用程序的jar。
我从文档中读到:
写入容器的可写层需要存储驱动程序来管理文件系统。存储驱动程序使用Linux内核提供联合文件系统。与使用直接写入主机文件系统的数据卷相比,这种额外的抽象降低了性能。
据我了解,如果创建一个用于映射主机/ tmp文件夹的卷会更好,这样我可以为I / O操作获得更好的性能。另一方面,尽管我的用例由临时文件组成,但似乎出于持久性原因而使用了卷。
管理临时文件时是否建议使用卷?如果不是,是否有一种有效的方法来处理Docker中的临时文件?
答案 0 :(得分:3)
如果需要性能而不是持久性,则可以创建tmpfs卷。例如
docker run --tmpfs /tmp -d java-img
请注意,即使在容器重新启动之间也没有持久性。同样,这将从空目录开始,而不是从该安装点的映像目录初始化。
有关更多详细信息,包括挂载tmpfs卷的其他方法,请参见:https://docs.docker.com/storage/tmpfs/