我已经做了一个实验来检查这一点。以下是我的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

我的问题是:
  • root是默认用户吗?
  • 为什么Dockerfile中的$ UID什么都不显示?

  • 谢谢!

    最佳答案

    (到目前为止)在其他答案中尚未完全解决的是您的第二个问题:


    $UID是bash内部变量。从dockerfile创建镜像时,未使用bash,因此未定义$UID,因此使用它会返回一个空字符串。

    要使此答案完整,即使已经回答过:



    这取决于如何设置FROM语句中的图像。

    关于docker - Dockerfile中指令的默认用户是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58797402/

    10-15 23:53