在Windows中使用附加卷更改正在运行的Docker容器中的文件的所有者

我在Windows中运行Docker(不是原生版本,因为我没有Windows Pro)。

我正在使用Docker Quickstartterminal(MinGW64)(我也使用Windows命令提示符)运行附加卷的映像:

docker run --rm -it -v /c/Users/yahya/example:/host-shared debian bash 

当我在/host-shared目录上运行ls -l时,我得到这个:

 total 0 drwxrwxrwx 1 1000 staff 0 Aug 6 20:38 hi 

但是,当我尝试更改此文件的所有者,如下所示:

 chown www-data:www-data hi 

再次运行ls -l ; 主人没有改变!

我相信这可能是一个Windows唯一的问题。

我只是testing它(在Linux上),它实际上工作。 它可能无法按预期或需要,但它确实有效。

容器中的文件属于用户www-data:www-data ,对于主机,属于用户1:33

如果主机和容器用户不匹配,那是因为容器和主机之间的UID和GID不同。 解决方法是使用useradd --uid $HOST_USER_UID --gid $HOST_USER_GID $USER_NAME创build一个用户,然后设置!


更新

这里是发出的命令:

 root@5665d3b794a2:/# ls -lh host-shared/aklm/ total 0 -rw-rw-r--. 1 www-data www-data 0 Aug 6 07:03 aze -rw-rw-r--. 1 www-data www-data 0 Aug 6 07:03 azer root@5665d3b794a2:/# chown -R root:root /host-shared/ root@5665d3b794a2:/# ls -lh host-shared/aklm/ total 0 -rw-rw-r--. 1 root root 0 Aug 6 07:03 aze -rw-rw-r--. 1 root root 0 Aug 6 07:03 azer 

Docker服务器版本:1.11.2