Выбор ответа Junior Облако и контейнеры обновлено
Зачем USER в Dockerfile
Вопрос
Зачем в Dockerfile указывать непривилегированного пользователя (USER 10001)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: При взломе процесс не будет root, и побег на хост и правка файлов образа сложнее. Root в контейнере это тот же UID 0, что на хосте (без user namespaces).
Варианты ответа
- Чтобы образ стал меньше: слои для root содержат служебные файлы, которые тогда не нужны
- Чтобы контейнер запускался быстрее, без проверки прав root при старте рантайма
- Это требуется только для Windows-контейнеров, в Linux пользователь ни на что не влияет
- При взломе процесс не будет root, и побег на хост и правка файлов образа сложнееправильный ответ
Разбор
Root в контейнере это тот же UID 0, что на хосте (без user namespaces). При уязвимости ядра или ошибке конфигурации это прямой путь к хосту. Размер и скорость запуска от пользователя не зависят.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.