Docker为什么绑定装载后权限错误?

Docker为什么绑定装载后权限错误?,docker,permissions,mount,Docker,Permissions,Mount,我正在将主机/tmp/docker装载到容器中的/home/vault/tmp/,但容器中的用户vault没有写入权限,即使在主机上,/tmp/docker设置为777,主机和容器中的uid和gid值也设置为相同。如何修复此问题并确保我的用户vault具有写入/所有者权限 主机 $ ls -la /tmp/docker/ total 8 drwxrwxrwx 2 ron ron 4096 Feb 5 19:34 . drwxrwxrwt 12 root root 4096 Feb 13

我正在将主机
/tmp/docker
装载到容器中的
/home/vault/tmp/
,但容器中的用户
vault
没有写入权限,即使在主机上,
/tmp/docker
设置为
777
,主机和容器中的
uid
gid
值也设置为相同。如何修复此问题并确保我的用户
vault
具有写入/所有者权限

主机

$ ls -la /tmp/docker/
total 8
drwxrwxrwx  2 ron  ron  4096 Feb  5 19:34 .
drwxrwxrwt 12 root root 4096 Feb 13 09:49 ..
ron@ENGDEV:~/novax-prs/docker$ id -u; id -g
1003
1003
$ ls -la /home/vault/tmp/
total 8
drwxr-xr-x 2 root  root  4096 Feb 13 06:47 .
drwxr-xr-x 1 vault vault 4096 Feb 13 18:06 ..
vault@novax_prs_build:~$ id -u; id -g
1003
1003
客人

$ ls -la /tmp/docker/
total 8
drwxrwxrwx  2 ron  ron  4096 Feb  5 19:34 .
drwxrwxrwt 12 root root 4096 Feb 13 09:49 ..
ron@ENGDEV:~/novax-prs/docker$ id -u; id -g
1003
1003
$ ls -la /home/vault/tmp/
total 8
drwxr-xr-x 2 root  root  4096 Feb 13 06:47 .
drwxr-xr-x 1 vault vault 4096 Feb 13 18:06 ..
vault@novax_prs_build:~$ id -u; id -g
1003
1003
绑定挂载

docker run -it \
           -e LOCAL_USER_ID=`id -u` \
           --user "$(id -u):$(id -g)" \
           -v ${dir}:/home/vault/ccimx6ulstarter \
           -v /tmp/docker:/home/vault/tmp:Z \
           ${name}

有趣的是,
/home/vault/ccimx6ulstarter/
目录在容器中正确设置了用户权限。

在主机用户的主目录中创建了一个
~/tmp\u docker/
,并将其与
-v
绑定,已在容器中获得正确的权限,将使用此权限,并可以在我的容器中作为
~/tmp/
使用此权限


说这句话,我不知道为什么我的主机的
/tmp/docker/
不能绑定到正确的权限。

您的/tmp文件夹可能使用与ext4不同的tmpfs,特别是在SELinux标签(使用
:Z
选项)时


尝试使用位于ext4文件系统上的文件夹。

不久前,我看到了这个问题,也就是问题所在。这有帮助吗?没有,不幸的是,仅仅在路径后面添加
:Z
似乎对我不起作用,我将行更改为
-v/tmp/docker:/home/vault/tmp:Z
,但仍然由容器中的
root
所有,您可以
--user“$(id-u):$(id-g)”
?我已经将它添加到我的
run
命令中,但仍然无法执行,我还更新了顶部的原始帖子。