【发布时间】:2015-08-08 11:04:08
【问题描述】:
有谁能解释为什么Spring Boot Docker Guide 建议添加/tmp 卷如下:
VOLUME /tmp
它解释了:
我们添加了一个指向“/tmp”的 VOLUME,因为这是 Spring Boot 应用程序默认为 Tomcat 创建工作目录的地方。效果是在你的主机上“/var/lib/docker”下创建一个临时文件,并将它链接到“/tmp”下的容器。
但是,我不太清楚您为什么想要/需要这样做。
如果 java 应用程序在容器的 /tmp 目录中创建任何文件,我看不出需要将其配置为卷,因为据我了解,这将导致文件绕过联合文件系统并在 Docker 主机中永久写入/var/lib/docker。这是否也会导致容器中创建的“临时”文件在容器停止时不会被自动删除?
如果没有这个VOLUME,我的 Spring Boot 应用程序(它确实会创建临时文件)似乎可以正常运行,但我想知道不遵循这个建议是否会产生任何负面影响。
谢谢。
【问题讨论】:
-
"这是否也会导致容器中创建的“临时”文件在容器停止时不会被自动删除?" — 仅当您在删除容器时忘记使用
-v选项时。 -
卷上的磁盘性能优于 docker 容器分层文件系统。这就是为什么你不想在 docker 文件系统上进行磁盘密集型操作
-
同样值得一问的是,在同一主机上运行多个 Spring Boot 容器的情况如何。他们是否共享这些工作目录?他们应该吗?
-
@dominikbrandon 当您运行多个 Spring Boot 容器时,每个容器将在主机文件系统上拥有自己的专用卷,尽管它们挂载相同的 /tmp 卷。如果您希望他们共享同一卷,那就另当别论了。
标签: docker spring-boot