【问题标题】:File storage options with DockerDocker 的文件存储选项
【发布时间】:2017-10-03 11:16:38
【问题描述】:

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

我们希望避免将文件存储在我们的数据库 (mongodb) 中。

使用 Docker 永久可靠地存储文件的常用最佳实践方法是什么?

【问题讨论】:

    标签: docker


    【解决方案1】:

    在外部存储服务器中保留非临时数据是一种解决方案。最近的一种方法是使用 S3 或类似 minio 的本地等效方法来存储需要超过容器生命周期的共享或私有数据。

    【讨论】:

      【解决方案2】:

      参考similar question

      可以在 docker 镜像/容器中创建数据卷。

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

      这将在 /webapp 的容器内创建一个新卷。但是一旦容器被销毁,存储的文件就会丢失。

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

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

      此命令将主机目录 /src/webapp 挂载到位于 /webapp 的容器中。 即使容器被销毁,docker 容器存储到这个挂载目录中的文件仍然可用。如果您打算在容器的生命周期之外保留文件,这将是一个不错的选择。

      【讨论】:

      • 是的,这看起来像是一个选项,因为是的,我们肯定需要在容器的生命周期之外持续存在。让我问一下,通常是对这类情况进行持久性处理吗?如果那样做有什么负面影响吗?谢谢!
      猜你喜欢
      • 1970-01-01
      • 2011-12-08
      • 2016-11-18
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 2017-11-19
      • 1970-01-01
      相关资源
      最近更新 更多