Ubuntu下Docker卷目录无法进入:Permission denied问题求助
解决Docker卷挂载目录Permission Denied的问题
Docker默认会将卷的挂载目录所有权设置为root用户,普通用户直接访问会触发权限拒绝错误,以下是几种解决方法:
临时访问(快速查看内容)
- 切换到root用户后访问:
sudo su cd /var/lib/docker/volumes/web-volume/_data - 无需切换用户,直接用sudo执行查看命令:
sudo ls -l /var/lib/docker/volumes/web-volume/_data
修改宿主机目录权限(长期普通用户访问)
注意:直接修改Docker默认存储目录权限可能存在安全风险,请根据实际场景评估后操作。
- 先查看当前目录的权限信息:
输出会显示该目录的所有者为sudo ls -ld /var/lib/docker/volumes/web-volume/_dataroot:root。 - 将目录所有者改为你的普通用户(替换
your_username为实际用户名):sudo chown -R your_username:your_username /var/lib/docker/volumes/web-volume/_data - 或者放宽目录权限(让其他用户拥有读写权限):
sudo chmod -R 775 /var/lib/docker/volumes/web-volume/_data
更规范的容器侧权限配置
如果你的需求是让容器内应用正常访问卷,更推荐从容器层面配置权限,避免修改宿主机Docker目录:
- 在Dockerfile中指定运行用户:
构建镜像后启动容器,卷的权限会自动适配容器内的普通用户。# 创建普通用户 RUN useradd -m appuser # 切换到该用户运行容器 USER appuser - 启动容器时指定宿主机用户ID:
这样容器内进程的UID/GID和宿主机当前用户一致,卷的权限会自动匹配。docker run -v web-volume:/container/path --user $(id -u):$(id -g) your_image_name
内容的提问来源于stack exchange,提问作者bvdotnet
相关产品推荐
相关产品推荐

