Spring Boot和Docker

Dav*_*vid 10 docker spring-boot

是否有人能够解释为什么Spring Boot Docker Guide建议/tmp按如下方式添加卷:

VOLUME /tmp

它解释说:

我们添加了一个指向"/ tmp"的VOLUME,因为这是Spring Boot应用程序默认为Tomcat创建工作目录的地方.效果是在"/ var/lib/docker"下的主机上创建一个临时文件,并将其链接到"/ tmp"下的容器.

但是,我不清楚为什么你想要/需要这样做.

如果java应用程序在容器的/ tmp目录中创建了任何文件,我看不出需要将它配置为卷,因为据我所知,它会导致文件绕过union文件系统并被写入持久地在Docker主机上/var/lib/docker.这是否也会导致容器中创建的"临时"文件在容器停止时不会被自动删除?

我的春季启动应用程序(确实创建临时文件)似乎没有这个运行正常VOLUME,但我想知道是否有任何负面后果不遵循这个建议.

谢谢.

Ort*_*kni 5

正如评论中所述,由于联合文件系统的原因,在容器中写入可能比在卷中写入慢。

此外,如果您希望能够在容器重新启动之间重用临时文件,则需要使用卷,但如果不是这种情况,则最好使用Docker 文档中所述的 tmpfs 挂载。