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