Dockerfile(8) - USER 指令详解

简介: Dockerfile(8) - USER 指令详解

USER


指定运行容器时的用户名或 UID,后续的RUN等指令也会使用指定的用户身份

USER <user>[:<group>]

USER <UID>[:<GID>]

 

小栗子


USER www

当容器中运行的服务不需要管理员权限时,可以先建立一个特定的用户和用户组,为它分配必要的权限,使用 USER 切换到这个用户

 

重点


  • 使用 USER 指定用户时,可以使用用户名、UID 或 GID,或是两者的组合
  • 使用 USER 指定用户后,Dockerfile 中后续的命令 RUN、CMD、ENTRYPOINT 都将使用该用户

 

注意事项


  • 在 Windows 上,如果用户不是内置帐户,则必须先创建该用户
  • 可以通过 Dockerfile 的 RUN net user 命令来完成

FROM microsoft/windowsservercore


# 在容器创建新用户

RUN net user /add patrick


# 设置用户

USER patrick

 

也可以使用 docker run -u 指定用户

  • 替代默认设置的用户
  • 可以使用 uid 来指定用户

docker run -i -t -u 1001 busybox sh

 


相关文章
|
缓存 Linux Go
Dockerfile(11) - COPY 指令详解
Dockerfile(11) - COPY 指令详解
2309 0
|
数据安全/隐私保护 Docker 容器
Dockerfile(15) - ARG 指令详解
Dockerfile(15) - ARG 指令详解
776 0
|
10月前
|
缓存 Linux Docker
44-Dockerfile-ADD/COPY指令
44-Dockerfile-ADD/COPY指令
|
10月前
|
容器
46-Dockerfile-USER/WORKDIR指令
46-Dockerfile-USER/WORKDIR指令
|
10月前
|
Shell 开发工具 git
43-Dockerfile-FROM/LABEL/RUN指令
43-Dockerfile-FROM/LABEL/RUN指令
|
Docker 容器
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
本文是博主学习docker 制作镜像指令的记录,希望对大家有所帮助
156 0
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
|
缓存 Linux Go
Dockerfile(10) - ADD 指令详解
Dockerfile(10) - ADD 指令详解
1488 0
|
Shell Linux 开发工具
Dockerfile(4) - RUN 指令详解
Dockerfile(4) - RUN 指令详解
372 0
|
容器
Dockerfile(5) - CMD 指令详解
Dockerfile(5) - CMD 指令详解
790 0
|
应用服务中间件 Shell nginx
Dockerfile(7) - ENV 指令详解
Dockerfile(7) - ENV 指令详解
1748 0
Dockerfile(7) - ENV 指令详解