我有一个项目(.Net核心应用程序接口),运行在Docker for windows下,并有客户可以上传文件的服务。
我希望将这些文件保存在服务器上(例如"C:\TempFolder"),但是当我在调试模式(使用docker)下运行项目并从代码动态创建目录时,出现错误:“System.IO.IOException: Invalid argument...”
CurrentDirectory是/app,而在DirectoryInfo FullPaths中,值是"/app/C:\TempFolder“

当我在没有docker的情况下运行应用程序时,它工作正常
这听起来可能很糟糕,但我不得不问:
是否可以在docker下运行时创建目录(在我有权限的地方,例如在我的本地PC或服务器上)?
这是我使用docker的第一个项目,所以...
发布于 2018-01-24 19:22:09
您可以在启动docker container时使用docker volumes作为参数,如果您正在使用它,则可以使用volumes defined in docker-compose。
docker volume create my-vol
docker run -d --name devtest --mount source=my-vol,target=/app或使用docker -compose.yml映射docker卷:
volumes:
- my-volume:/app或者映射到相对于docker-compose.yml的目录:
volumes:
- ./temp-dir:/app请记住,容器内代码不会知道某个文件夹映射到容器外部的存储。
从主机的角度来看,映射到docker卷和映射到相对路径之间的主要区别在于,Docker将决定卷在主机中的存储位置以及谁可以访问它,而相对路径是您控制的目录。
使用相对路径时需要注意的另一点是,确保您在目录上设置了权限,以便docker进程可以使用它。
https://stackoverflow.com/questions/48420989
复制相似问题