[英]What is the default user of instructions in Dockerfile?
我做了一個實驗來檢查這一點。 以下是我的Dockerfile:
FROM ubuntu:bionic
RUN echo $UID > a.out && echo "hello" > a.out
RUN useradd -m user
RUN echo $UID > b.out
USER user
a.out 和 b.out 的結果如下所示。
user@39370ee77a16:/$ cat a.out
hello
user@39370ee77a16:/$ cat b.out
我的問題是:
謝謝!
其他答案(到目前為止)尚未完全解決的是您的第二個問題:
為什么 Dockerfile 中的 $UID 什么也不顯示?
$UID
是一個 bash 內部變量。 從 dockerfile 創建映像時,未使用 bash,因此未定義$UID
,因此使用它會返回一個空字符串。
為了使這個答案完整,即使它已經被回答:
root是默認用戶嗎?
這取決於FROM
語句中的圖像是如何設置的。
它取決於基本映像,但在您的情況下,默認用戶是 root。 您可以從基礎映像或 Dockerfile 內部進行驗證。
FROM ubuntu:bionic
RUN whoami
在您的情況下,您會看到hello
因為您覆蓋了內容,請嘗試使用
RUN echo $UID >> a.out && echo "hello" >> a.out
您可以使用更改用戶
USER my_user
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.