Docker构建时COPY文件夹后普通用户无法访问问题求助
Docker容器中普通用户无法访问deploy目录的解决方案
我一眼就发现你Dockerfile里藏着一个不起眼的拼写错误——在chown命令里,你把用户组名写成了myser,但实际用useradd -ms /bin/bash myuser创建用户时,系统默认会生成同名的用户组myuser。这个小失误导致/deploy目录的组权限没有正确赋予myuser用户所属的组,所以切换到myuser后自然没法访问目录内容,而root用户不受权限限制就能正常访问。
修正后的Dockerfile
FROM ubuntu:latest COPY . /deploy RUN useradd -ms /bin/bash myuser # 修正组名拼写错误:将myser改为myuser RUN chown -R myuser:myuser /deploy
验证步骤
- 重新构建镜像:
docker build -t my-ubuntu-image . - 启动容器并切换到myuser用户:
docker run -it --rm my-ubuntu-image su - myuser - 现在尝试访问
/deploy目录:
这时候应该能正常看到目录下的所有文件和文件夹了。cd /deploy && ls -la
额外排查小技巧
如果之后还遇到类似权限问题,可以在容器里执行以下命令确认权限配置:
- 查看
/deploy目录的所有者和组:ls -ld /deploy,确保输出里的所有者和组都是myuser - 查看myuser用户的组信息:
id myuser,确认用户属于myuser组
内容的提问来源于stack exchange,提问作者Vivek Kumar
相关产品推荐
相关产品推荐

