【问题标题】:Can't change the permissions of files/folders on a volume with Docker windows无法使用 Docker 窗口更改卷上文件/文件夹的权限
【发布时间】:2018-03-17 18:16:27
【问题描述】:

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

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

重现步骤:

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

Dockerfile:

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 容器上卷上文件/文件夹的权限更改?

链接:

【问题讨论】:

    标签: windows docker docker-for-windows


    【解决方案1】:

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

    Docker for Windows 目前基于基于 Microsoft SMB 协议,不支持细粒度的 chmod 控制这些权限。

    【讨论】:

    • 感谢您的回答。我认为这是适用于 Windows 的 Docker 上的 Linux 容器的情况。是否有关于 Windows 容器的文档?
    • “Docker for windows”是指所有运行在windows平台上的容器
    • 我明白了。非常感谢!
    猜你喜欢
    • 2019-12-06
    • 2016-02-04
    • 2012-10-21
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2021-03-09
    相关资源
    最近更新 更多