我们计划将Docker与我们新的asp.net核心项目一起使用,其中一个要求是应用程序将上传文件,我们需要永久存储它们。 我们已经读过Docker每个容器创建文件系统/卷(我的术语可能不精确),如果容器因任何原因重新创建 - 文件系统/卷暴露给容器就会丢失。
我们希望避免在我们的数据库中存储文件(mongodb)。
使用Docker永久保存文件和通过Docker可靠存储的常用最佳实践方法是什么?
答案 0 :(得分:1)
在外部存储服务器中保留非短暂数据是一种解决方案。最近的方法是使用S3或本地等效项minio来存储需要比容器的生命周期更长的共享或私有数据。
答案 1 :(得分:1)
可以在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容器存储到此安装目录中的文件也将可用。如果您计划将文件保留在容器的生命周期之外,这将是一个不错的选择。