Каков пользователь по умолчанию для инструкций в Dockerfile? - PullRequest
0 голосов
/ 11 ноября 2019

Я провел эксперимент, чтобы проверить это. Вот мой 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

Мой вопрос:

  1. Является ли пользователь root пользователем по умолчанию?
  2. Почему $ UID в Dockerfile ничего не показывает?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 11 ноября 2019

Что еще не было полностью рассмотрено в других ответах (пока) - ваш второй вопрос:

Почему $ UID в Dockerfile ничего не показывает?

$UIDвнутренняя переменная bashКогда изображение создается из файла Docker, bash не используется, поэтому $UID не определено, поэтому его использование возвращает пустую строку.

Чтобы завершить этот ответ, даже если на него уже был получен ответ:

Является ли пользователь root пользователем по умолчанию?

Это зависит от того, как был настроен образ в операторе FROM.

0 голосов
/ 11 ноября 2019

Это зависит от базового образа, но в вашем случае пользователь по умолчанию - root. вы можете проверить это из базового образа или из Dockerfile.

FROM ubuntu:bionic 
RUN whoami

В вашем случае вы видите hello, поскольку вы переопределяете содержимое, попробуйте с помощью

RUN echo $UID >> a.out && echo "hello" >> a.out   

Вы можете изменить пользователя, используя

USER my_user
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...