我在Docker容器中有一个基本应用程序runnig。该应用程序是一个页面,用户可以在其中上传文件。上传的文件存储在app / myApp / UploadedFiles内部(应用文件夹是容器安装我的应用的位置)
如果重新启动容器,则丢失了存储在文件夹app / myApp / UploadedFiles中的所有文件
即使重新启动容器,保留上传文件的最佳方法是什么?
我试图在docker compose文件中使用卷;
volumes:
- ${WEBAPP_STORAGE_HOME}/var/myFiles:/myApp/UploadedFiles
这会在以下根目录home> var> myFiles中创建一个文件夹,但是如果我上传文件,我将永远不会在这些目录中看到它们。
我该怎么做?
我的目标是持久保存文件并可以访问它们,例如下载文件。
谢谢
编辑:
我使用Container Registry在Azure中创建了一个应用服务,而这个docker组成了:
version: '2.0'
services:
myWebSite:
image: myWebSite.azurecr.io/myWebSite:latest
volumes:
- ${WEBAPP_STORAGE_HOME}/var/myFiles:/myApp/UploadedFiles
environment:
- COMPOSE_CONVERT_WINDOWS_PATHS=1
ports:
- 5001:443
如果我在网站上上传文件,该文件将转到/ myApp / UploadedFiles 使用BASH,我可以转到/ home / var / myFiles,但是里面没有任何文件。
我不知道这是否是正确的方法。我的应用程序日志可能有同样的问题。我不知道如何阅读日志。
答案 0 :(得分:0)
除了在您使用的服务中声明卷外,您还需要创建另一个部分以便以两种方式链接卷(从容器到机器,从机器到pc)
赞:
volumes:
- database:/var/lib/postgresql/data
volumes:
database: