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

VMware中Ubuntu 22.04.3上Docker容器用户目录权限异常

问题与解决方案

环境信息

  • 虚拟化平台:VMware Workstation 16.2.5/17.0.2
  • 宿主机系统:Ubuntu 20.04.6/22.04.3

涉及的Dockerfile内容

FROM debian:12.1-slim

WORKDIR /root

RUN groupadd -f ernie-1001 -g 1001 \
    && groupadd -f ernie-1000 -g 1000 \
    && useradd -ms /bin/bash ernie -g 1001 -G 1000 \
    && printf "ernie:ernie" | chpasswd \
    && adduser ernie sudo \
    && printf "ernie ALL= NOPASSWD: ALL\n" >> /etc/sudoers

操作步骤

$ sudo apt install docker-compose
$ sudo docker build . -t strange:1.0
$ sudo docker run -it --name strangebase strange:1.0
root@d031fe5152e4:~# su ernie
ernie@d031fe5152e4:/root$ cd
ernie@d031fe5152e4:~$ ls -all

问题现象

执行上述操作后,/home/ernie目录及下属文件的属主应为ernie用户,但实际显示属主为root。添加RUN chown -R ernie:ernie /home/ernie到Dockerfile后问题仍未解决,此前在其他Ubuntu 22.04虚拟机中可正常运行。


原因分析

  1. 指令顺序问题:WORKDIR /root先于用户创建指令执行,导致Docker构建上下文始终以/root为基准,后续useradd自动创建的/home/ernie目录权限未被正确应用。
  2. Docker构建缓存:旧的构建缓存可能保留了错误的权限配置,导致新构建的镜像仍沿用旧的权限设置。
  3. Debian 12基础镜像行为:Debian 12的useradd指令在特定上下文下,自动创建的用户目录权限可能未按预期设置为对应用户。

解决方案

1. 调整Dockerfile指令顺序并确保权限设置

修改后的Dockerfile如下,将用户创建、权限设置放在WORKDIR之前,最后切换到目标用户:

FROM debian:12.1-slim

RUN groupadd -f ernie-1001 -g 1001 \
    && groupadd -f ernie-1000 -g 1000 \
    && useradd -ms /bin/bash ernie -g 1001 -G 1000 \
    && printf "ernie:ernie" | chpasswd \
    && adduser ernie sudo \
    && printf "ernie ALL= NOPASSWD: ALL\n" >> /etc/sudoers \
    && chown -R ernie:ernie /home/ernie

# 切换到ernie用户,默认工作目录设为用户主目录
USER ernie
WORKDIR /home/ernie

2. 清理缓存重新构建

执行以下命令强制清理Docker构建缓存,避免旧配置干扰:

sudo docker build --no-cache . -t strange:1.0

3. 构建阶段验证权限(可选)

在Dockerfile中添加权限验证指令,构建时即可确认权限是否正确:

# 在chown指令后添加
RUN ls -ld /home/ernie

同类问题说明

这类权限异常多由Docker构建分层缓存、指令顺序错误或基础镜像用户管理行为差异导致。调整指令顺序、清理构建缓存是通用的解决思路,针对Debian 12这类较新的基础镜像,需确保用户创建及权限设置的指令逻辑连贯。

内容的提问来源于stack exchange,提问作者Ernie Sanderson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:36:10