windows - 无法使用 Docker Windows 更改卷上文件/文件夹的权限

标签 windows docker docker-for-windows

我尝试使用 Docker 窗口更改卷上文件/文件夹的权限。但是出乎意料的是,权限没有改变。

环境: 主机:Windows 10 专业版 Docker版本17.09.0-ce,构建afdb6d4

重现步骤:

  1. 使用下面的 Dockerfile 构建一个镜像。
  2. 运行带有卷的容器。
  3. 更改文件/文件夹的权限。

docker 文件:

FROM microsoft/windowsservercore
CMD [ "powershell" ]

输出:

D:\data\docker\sample>docker build -t sample .
Sending build context to Docker daemon  1.272GB
Step 1/2 : FROM microsoft/windowsservercore
 ---> 2cddde20d95d
Step 2/2 : CMD powershell
 ---> Running in dd207fe8b262
 ---> e0203df155cd
Removing intermediate container dd207fe8b262
Successfully built e0203df155cd
Successfully tagged sample:latest

D:\data\docker\sample>docker run -d --name sample --mount type=volume,source=sample_volume,target=C:/data sample ping -t localhost
5a21f41d63de321e912ec3b99010a062d2e04d5f99145c6cd8bf649d3fbbebf1

D:\data\docker\sample>docker exec -i sample cmd
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\>cd c:\data
cd c:\data

c:\data>MKDIR foo
MKDIR foo

c:\data>ECHO hoge > foo\hoge.txt
ECHO hoge > foo\hoge.txt

c:\data>cacls foo
cacls foo
c:\data\foo NT AUTHORITY\SYSTEM:(OI)(CI)(ID)F
            BUILTIN\Administrators:(OI)(CI)(ID)F
            CREATOR OWNER:(OI)(CI)(IO)(ID)F
            BUILTIN\Users:(OI)(CI)(ID)R
            BUILTIN\Users:(CI)(ID)(special access:)
                                  FILE_WRITE_DATA
                                  FILE_APPEND_DATA
                                  FILE_WRITE_EA
                                  FILE_WRITE_ATTRIBUTES



c:\data>cacls foo\hoge.txt
cacls foo\hoge.txt
c:\data\foo\hoge.txt NT AUTHORITY\SYSTEM:(ID)F
                     BUILTIN\Administrators:(ID)F
                     BUILTIN\Users:(ID)R


c:\data>cacls foo /T /E /G everyone:F
cacls foo /T /E /G everyone:F
processed dir: c:\data\foo
processed file: c:\data\foo\hoge.txt

c:\data>cacls foo
cacls foo
c:\data\foo NT AUTHORITY\SYSTEM:(OI)(CI)(ID)F
            BUILTIN\Administrators:(OI)(CI)(ID)F
            CREATOR OWNER:(OI)(CI)(IO)(ID)F
            BUILTIN\Users:(OI)(CI)(ID)R
            BUILTIN\Users:(CI)(ID)(special access:)
                                  FILE_WRITE_DATA
                                  FILE_APPEND_DATA
                                  FILE_WRITE_EA
                                  FILE_WRITE_ATTRIBUTES



c:\data>cacls foo\hoge.txt
cacls foo\hoge.txt
c:\data\foo\hoge.txt NT AUTHORITY\SYSTEM:(ID)F
                     BUILTIN\Administrators:(ID)F
                     BUILTIN\Users:(ID)R

我发现一份文件说在 Linux 容器上不能更改卷上文件/文件夹的权限。但是我找不到有关 Windows 容器的文档。 Windows 容器是否支持Windows 容器 卷上文件/文件夹的权限更改?

链接:

最佳答案

从您提到的链接来看,docker for windows 似乎不支持更改文件权限。

Docker for Windows currrently implements host-mounted volumes based on the Microsoft SMB protocol, which does not support fine-grained, chmod control over these permissions.

关于windows - 无法使用 Docker Windows 更改卷上文件/文件夹的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46597290/

相关文章:

node.js - docker-compose up 找不到模块,但从 bash 运行有效

Azure 服务结构 : Container images not refresh

visual-studio - Docker Desktop for Windows + ASP.NET Core 错误

asp.net - 在本地解析Docker主机名时HttpClient花费太多时间

docker - Docker Windows容器CMD-命令未运行

windows - 为什么默认情况下允许 "local launch"用于进程外服务器,但 "local activation"不允许?

windows - 为什么 XCOPY/W 和 REPLACE/W 为它们的单字符提示消耗所有重定向的文本数据?

windows - 由 : java.net.BindException 引起:地址已在使用中:绑定(bind)

c++ - 进程外使用MiniDumpWriteDump时如何获取异常信息?

docker 镜像在构建后消失了