在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