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