首页/云/Docker 容器速查/USER 指定运行用户
镜像与构建107 条

USER 指定运行用户

切换后续指令与容器启动进程的用户/组;配合提前创建的专用账号实现非 root 运行,是容器安全加固的基础动作。

Docker 容器速查云更新于 2026-10-12
用途指定构建后续与运行时用户
语法USER 用户名[:组] 或 UID:GID(数字)
位置通常放在安装/复制完成后

示例

示例
# Debian/Ubuntu 基础镜像
RUN groupadd -r app && useradd -r -g app -u 1001 -m app

# Alpine 基础镜像
RUN addgroup -S app && adduser -S -G app -u 1001 app

USER 1001:1001
CMD ["/app/server"]
USER 之后的 RUN/CMD/ENTRYPOINT 都是该身份;需要 root 的安装步骤必须放在 USER 之前。

易错点

  • 切到非 root 后再执行 apt/apk 会权限不足,构建中途失败
  • 只写用户名而镜像里没建过该账号会运行失败,跨镜像复用时优先数字 UID:GID

数据来源与参考

  • Docker 官方文档:Dockerfile USER(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌