【发布时间】:2020-09-02 16:29:17
【问题描述】:
我有一个在 docker 容器内运行的基本应用程序。该应用程序是用户可以上传文件的页面。上传的文件存储在 app/myApp/UploadedFiles 中(app 文件夹是容器安装我的应用程序的位置)
如果我重新启动容器,我会丢失文件夹 app/myApp/UploadedFiles 中存储的所有文件
即使我重新启动容器,保存上传文件的最佳方法是什么?
我尝试在我的 docker compose 文件中使用卷;
volumes:
- ${WEBAPP_STORAGE_HOME}/var/myFiles:/myApp/UploadedFiles
这会在以下根目录中创建一个文件夹>var>myFiles 但如果我上传文件,我永远不会在这些目录中看到它们。
我该怎么做?
我的目标是保存文件并可以访问它们,例如下载文件。
谢谢
编辑:
我在 Azure 中使用 Container Registry 和这个 docker compose 创建了一个应用服务:
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 但里面没有任何文件。
我不知道这是否是正确的方法。我的应用程序日志可能有同样的问题。我不知道如何阅读我的日志。
【问题讨论】:
-
使用卷(命名卷或来自主机目录的绑定挂载)是解决此问题的正确方法。如果它似乎不起作用,请在您的问题中提供足够的信息以便我们重现问题,我们可能会帮助您解决问题。
标签: docker docker-compose dockerfile docker-volume docker-container