使用 docker 时将图像保存在文件或数据库中

Saving images on files or on database when using docker

我正在为一个项目使用 docker,其使用的主要重点是使应用程序可用,即使其中一个节点(它是具有 docker swarm 的 6 节点集群)是下来。

该应用程序基本上是一个 Django 应用程序,可以保存来自用户和其他模型的一些图像。我目前正在将图像保存为文件,但由于我需要在本地为一台机器指定一个 volume,我想知道将图像保存在数据库集群上是否更好,所以它会是即使整个节点宕机也可用。或者有别的办法吗?

@编辑 注意:集群在本地运行,无法访问互联网

最好的解决方案通常是选择托管选项(例如 MongoDB Atlas)。使数据库具有弹性和高可用性真的很难,除非您是 docker 和 mongo 方面的专家,否则我强烈建议您选择托管选项。

这两个选项是通过数据库或通过文件系统执行文件共享。

对于文件系统共享,您可以使用 GlusterFS 之类的东西,因此对于每个容器来说,它们似乎正在安装一个主机本地卷,但实际上是通过主机之间的 GlusterFS 共享的。

在我看来,如果这是您的应用程序(例如,您可以随意修改它),那么对于大多数开发人员来说,将内容保存在数据库中将是更简单的方法。