You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:22:42