Docker:Volume的权限问题

场景

userA创建目录downloads,然后运行Docker时挂载该目录,--user参数设置为:$(id -u)

mkdir downloads

docker run -v $(pwd)/downloads:/downloads --user $(id -u):$(id -g) helloworld

问题

在docker容器目录无法访问downloads目录,报错权限不足

解释

当我们绑定宿主目录到镜像时,如果该目录不存在,Docker也会自动创建该目录。这种方式创建出来的目录的拥有者是root用户。如果该目录已经存在,那么其拥有者就取决于宿主配置的情况了。

由于Docker内部的用户空间和宿主的用户空间是独立的,如果镜像内运行进程的用户和宿主目录的拥有者不符合,就会出现权限问题。

解决

执行命令:

chown -R $(id -u) downloads/
posted @ 2021-02-24 17:21  Feng1024  阅读(661)  评论(0编辑  收藏  举报