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

 

posted @ 2021-10-31 14:56  小菠萝测试笔记  阅读(1483)  评论(0编辑  收藏  举报