指定运行容器时的用户名或 UID,后续的RUN等指令也会使用指定的用户身份
USER www
当容器中运行的服务不需要管理员权限时,可以先建立一个特定的用户和用户组,为它分配必要的权限,使用 USER 切换到这个用户
- 使用 USER 指定用户时,可以使用用户名、UID 或 GID,或是两者的组合
- 使用 USER 指定用户后,Dockerfile 中后续的命令 RUN、CMD、ENTRYPOINT 都将使用该用户
- FROM microsoft/windowsservercore
-
- # 在容器创建新用户
- RUN net user /add patrick
-
- # 设置用户
- USER patrick
也可以使用 docker run -u 指定用户
docker run -i -t -u 1001 busybox sh
注意事项
1 格式
WORKDIR /path/to/workdir
2 作用
为后续的RUN、CMD、ENTRYPOINT指令配置工作目录。
可以使用多个WORKDIR指令,后续命令如果参数时相对路径,则会基于之前命令指定的路径。例如
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
则最终路径为/a/b/c