Docker启动时挂载目录提示权限不足Permission denied

875 阅读1分钟

问题

image.png

docker容器挂载目录下部分文件,在容器外没有足够权限

原因

Docker容器与宿主机共享同一个内核,在验证权限时只认可Uid和Gid。因此,无论是在容器内还是在宿主机上,对于特定文件的所有者,只认相应的Uid。当启动Docker容器时,如果未指定用户,则默认使用root用户。如果在容器内对挂载目录下的文件进行操作,那么相应文件的所有者将会升级为root。在容器外,如果只有非root用户的权限,将无法对这些文件进行操作。

解决办法

docker run (参数...) -u uid:gid -it container_name

补充说明

uid和gid查看方式: id -u id -g