Docker的文件存储选项

我们计划使用Docker与我们新的asp.net核心项目,其中一个要求是应用程序将上传文件,我们需要永久保存它们。 我们已经读过,Docker在每个容器中创build文件系统/卷(在这里我可能是不精确的术语),并且如果容器是由于任何原因重新创build的 – 文件系统/卷暴露给容器丢失。

我们想避免在我们的数据库(mongodb)存储文件。

使用Docker永久保存文件的最佳实践方式是什么?

在外部存储服务器中保存非短暂数据是一个解决scheme。 最近的做法是使用S3或像minio这样的本地等价物来存储需要超过容器生命周期的共享或私有数据。

参考类似的问题

可以在Docker镜像/容器中创build数据卷。

$ docker run -d -P --name web -v /webapp training/webapp python app.py 

这将在/ webapp的容器内创build一个新卷。 但一旦容器被破坏,存储的文件将会丢失。

另一方面,我们可以将一个主机目录挂载到一个容器中。 主机目录可以在容器内访问。

 $ docker run -d -P --name web -v /src/webapp:/webapp training/webapp python app.py 

该命令将主机目录/ src / webapp安装到/ webapp的容器中。 即使容器被破坏,docker容器存储到这个安装目录中的文件也将可用。 如果您打算在容器使用期限之后坚持文件,这将是一个不错的select。