C# Docker卷中的写入权限
我创建了一个docker卷,其中包含:C# Docker卷中的写入权限,c#,docker,asp.net-core,C#,Docker,Asp.net Core,我创建了一个docker卷,其中包含: docker volume create my-volume-name 在docker容器中运行的控制台应用程序中,我使用如下创建配置: { "HostConfig": { "Binds": [ "my-volume-name:/app/my-volume-name:rw" ], "Privileged": true } } 容器看到该卷,但没有写入该卷的任何权限。 它给了我一个权限被拒绝的错误。(下面的例外
docker volume create my-volume-name
在docker容器中运行的控制台应用程序中,我使用如下创建配置:
{
"HostConfig": {
"Binds": [
"my-volume-name:/app/my-volume-name:rw"
],
"Privileged": true
}
}
容器看到该卷,但没有写入该卷的任何权限。它给了我一个权限被拒绝的错误。(下面的例外是我试图在卷中创建文件) 这就是我得到的:
Access to the path '/app/my-volume-name/example.txt' is denied. ---> System.IO.IOException: Permission denied
我缺少什么才能写入我用docker volume create
命令创建的卷?这里的目标是在主机上有一个共享卷,我创建的某些容器可以读取和写入该卷
编辑(附加的dockerfile):
当我ls-l
在容器中时,我看到:
drwxr-xr-x 3 root root 4096 Jul 2 13:28 my-volume-name
编辑2:
在dockerfile中删除moduleuser的创建时,出现以下错误:
ERROR:System.IO.IOException: The process cannot access the file '/app/my-volume-name/example.txt' because it is being used by another process.
但是它是创建的-所以看起来我走的是正确的道路。docker volume create my volume name将使用root权限创建空间。请签入运行应用程序的用户所在的容器。更新卷的所有权或使用root用户运行应用程序。如果需要进一步的帮助,请提供应用程序使用的dockerfile。我已将上面的dockerfile添加到问题的末尾。这是物联网边缘材料的一部分,moduleuser是作为其项目构建脚手架的一部分制作的。我可以试着删除它。我注释掉了moduleuser的创建,这样看来容器现在是以root用户身份运行的——看起来事情确实如预期的那样运行。文件创建成功了,我的代码中出现了一些错误,但它让我前进了。我会把你的答案标记为正确的-谢谢Rohit。不客气,杰森。请也接受这个答案。如果要使用
moduleuser
,请告诉我。
drwxr-xr-x 3 root root 4096 Jul 2 13:28 my-volume-name
ERROR:System.IO.IOException: The process cannot access the file '/app/my-volume-name/example.txt' because it is being used by another process.