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 指令详解
2817 0
|
缓存 Linux Docker
44-Dockerfile-ADD/COPY指令
44-Dockerfile-ADD/COPY指令
|
Shell 开发工具 git
43-Dockerfile-FROM/LABEL/RUN指令
43-Dockerfile-FROM/LABEL/RUN指令
|
Docker 容器
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
本文是博主学习docker 制作镜像指令的记录,希望对大家有所帮助
195 0
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
|
缓存 Linux Go
Dockerfile(10) - ADD 指令详解
Dockerfile(10) - ADD 指令详解
2295 0
|
Shell 容器
DOCKER04_详解Dockerfile基本指令、FROM、LABEL、RUN、CMD、ENTRYPOINT、ARG、ENV、VOLUME、USER(三)
③. RUN 构建时期运行的指令 ④. CMD(运行时期)、ENTRYPOINT 指定启动容器、镜像的默认入口
189 0
DOCKER04_详解Dockerfile基本指令、FROM、LABEL、RUN、CMD、ENTRYPOINT、ARG、ENV、VOLUME、USER(三)
|
安全 Shell Linux
DOCKER04_详解Dockerfile基本指令、FROM、LABEL、RUN、CMD、ENTRYPOINT、ARG、ENV、VOLUME、USER(二)
③. 保留字指令 ①. FROM 基于哪个镜像 ②. LABEL 镜像的说明信息
202 0
DOCKER04_详解Dockerfile基本指令、FROM、LABEL、RUN、CMD、ENTRYPOINT、ARG、ENV、VOLUME、USER(二)
|
Shell Linux 开发工具
Dockerfile(4) - RUN 指令详解
Dockerfile(4) - RUN 指令详解
451 0