Pie*_* B. 24
我不知道有什么鼓励使用Docker管理临时文件的方法,因为这主要取决于您如何使用应用程序处理这些临时文件(是否应在重新启动时将其删除?定期删除?)
您可以根据自己的需要选择几种方法:
tmpfs挂载您可以安装一个tmpfs只要容器正在运行就可以持久保存数据的卷(例如,当容器停止时该卷中的数据将被删除),例如:
docker run --mount type=tmpfs,destination=/myapp/tmpdir someimage
Run Code Online (Sandbox Code Playgroud)
如果您可以定期重新启动容器,并且在重新启动容器时可以重新创建临时数据,则这可能很有用。但是,如果您需要能够在容器运行时清理临时数据,则这不是一个好的解决方案,因为您将需要停止容器以清理临时数据。
编辑:根据@ alexander-azarov注释,默认情况下,tmpfs卷大小不受限制,存在容器耗尽所有机器内存的风险。tmpfs-size建议使用标志来减轻这种风险,例如docker run --mount type=tmpfs,destination=/app,tmpfs-size=4096
如果未安装任何卷,则容器的可写层是将所有数据写入容器的位置。它在重新启动容器时将保持不变,但是如果删除了容器,它将被删除。
这样,仅当删除容器时,才会删除临时数据。对于短寿命的容器,这可能是一个很好的解决方案,但对于长寿命的容器却不是。
/tmp使用绑定安装器将主机安装在容器中例如:
docker run -v /tmp/myapp-tmp-dir:/myapp/tmpdir someimage
Run Code Online (Sandbox Code Playgroud)
这将导致所有数据都写入主机/tmp/myapp-tmp-dir目录中,并且结果将取决于主机的管理方式/tmp(在大多数情况下,计算机重新启动后会清除数据)
您可以创建一个包含数据的卷,例如:
docker run --mount source=myappvol,target=/myapp/tmpdir someimage
Run Code Online (Sandbox Code Playgroud)
并管理卷中的数据:将其安装在另一个容器中并清理数据,删除卷等。
这些是(几乎)完全依赖Docker功能的最常见解决方案。另一种可能性是直接从容器中运行的软件或应用程序处理临时文件,但这比与Docker相关的问题更多是与应用程序相关的问题。
| 归档时间: |
|
| 查看次数: |
1203 次 |
| 最近记录: |