Выбор ответа Junior Облако и контейнеры обновлено

Зачем USER в Dockerfile

Вопрос

Зачем в Dockerfile указывать непривилегированного пользователя (USER 10001)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: При взломе процесс не будет root, и побег на хост и правка файлов образа сложнее. Root в контейнере это тот же UID 0, что на хосте (без user namespaces).

Варианты ответа

  1. Чтобы образ стал меньше: слои для root содержат служебные файлы, которые тогда не нужны
  2. Чтобы контейнер запускался быстрее, без проверки прав root при старте рантайма
  3. Это требуется только для Windows-контейнеров, в Linux пользователь ни на что не влияет
  4. При взломе процесс не будет root, и побег на хост и правка файлов образа сложнееправильный ответ

Разбор

Root в контейнере это тот же UID 0, что на хосте (без user namespaces). При уязвимости ядра или ошибке конфигурации это прямой путь к хосту. Размер и скорость запуска от пользователя не зависят.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.