首页 > 解决方案 > Docker为什么绑定挂载后权限错误?

问题描述

我正在将我的主机安装/tmp/docker/home/vault/tmp/我的容器中,但我容器中的用户vault没有写入权限,即使在我的主机上,/tmp/docker设置为777uid并且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

绑定挂载

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/目录具有用户在容器中正确设置的权限。

标签: dockerpermissionsmount

解决方案


您的 /tmp 文件夹可能使用的 tmpfs 的行为与 ext4 不同,尤其是在涉及 SELinux 标签时(带有:Z选项)。

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


推荐阅读