Вопрос на собеседовании · DevOps-инженер
Как уменьшить размер Docker-образа?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
Основные меры — multi-stage build, минимальный runtime-образ, точный .dockerignore и установка только production-зависимостей. Инструменты сборки и исходники остаются в builder-стадии, а в финальную попадают только нужные бинарники и сертификаты.
Размер слоёв уменьшают очисткой кеша в том же RUN, где ставятся пакеты, и удалением ненужных файлов до фиксации слоя. После изменений сравнивают не только мегабайты, но и CVE, время сборки, кеширование и совместимость runtime.
01 · Структура ответа
Что важно сказать интервьюеру
Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:
02 · Пример
Как объяснить на практике
Go-сервис собирается в golang-образе с кешем модулей, затем статический бинарник и CA-сертификаты копируются в distroless. Компилятор и исходники в production-образ не попадают.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Как порядок COPY влияет на кеш?
- Чем distroless отличается от scratch?
- Как найти самый тяжёлый слой?
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с опорой.
Mira