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

时间:2016-08-05 23:43:58

标签: docker

我在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唯一的问题。

1 个答案:

答案 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