Команды, указанные в инструкциях CMD или ENTRYPOINT в Dockerfile, по умолчанию выполняются от имени пользователя, который задан внутри контейнера. Если в Dockerfile не указана инструкция USER, то команда будет выполнена от имени пользователя root.
Если в Dockerfile указаны командные инструкции CMD или ENTRYPOINT, каким пользователем эта команда будет выполнена внутри контейнера?
Команды, указанные в инструкциях CMD или ENTRYPOINT в Dockerfile, по умолчанию выполняются от имени пользователя, который задан внутри контейнера.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Команды, указанные в инструкциях CMD или ENTRYPOINT в Dockerfile, по умолчанию выполняются от имени пользователя, который задан внутри контейнера. Если в Dockerfile не указана инструкция USER, то команда будет выполнена от имени пользователя root.
Чтобы изменить пользователя, от имени которого запускается команда, в Dockerfile используется инструкция USER, например:
USER appuser
После этого все команды, включая CMD и ENTRYPOINT, будут выполняться от имени appuser. Если USER не задан, то по умолчанию это root.