我在Windows中运行Docker(不是本机版本,因为我没有Windows Pro)。
我使用Docker Quickstart终端(MinGW64)运行带有附加卷的图像(我也使用了Windows命令提示符):
docker run --rm -it -v /c/Users/yahya/example:/host-shared debian bash
当我在ls -l
目录上运行/host-shared
时,我得到了这个:
total 0
drwxrwxrwx 1 1000 staff 0 Aug 6 20:38 hi
但是,当我尝试更改此文件的所有者时:
chown www-data:www-data hi
再次运行ls -l
;店主没有改变!
我认为这可能是Windows唯一的问题。
答案 0 :(得分:1)
我刚测试过它(虽然在Linux上)并且它确实有效。它可能无法按预期或需要的方式工作,但它确实有效。
容器中的文件属于用户www-data:www-data
,与主机一样,它属于用户1:33
。
如果主机和容器用户不匹配,那是因为容器和主机之间的UID和GID不同。解决方案是使用useradd --uid $HOST_USER_UID --gid $HOST_USER_GID $USER_NAME
创建用户,然后重新设置!
以下是发布的命令:
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 Server版本:1.11.2