Вопрос на собеседовании · DevOps-инженер

Как уменьшить размер Docker-образа?

Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.

Обновлено 17 августа 2026 г.Встречается часто
DevOps-инженерПрофессии и разделы
Короткий ответ

Основные меры — multi-stage build, минимальный runtime-образ, точный .dockerignore и установка только production-зависимостей. Инструменты сборки и исходники остаются в builder-стадии, а в финальную попадают только нужные бинарники и сертификаты.

Размер слоёв уменьшают очисткой кеша в том же RUN, где ставятся пакеты, и удалением ненужных файлов до фиксации слоя. После изменений сравнивают не только мегабайты, но и CVE, время сборки, кеширование и совместимость runtime.

01 · Структура ответа

Что важно сказать интервьюеру

Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:

Multi-stage отделяет сборку от runtime.
Удаление в следующем слое не уменьшает предыдущий.
.dockerignore сокращает build context.
Distroless полезен не каждому приложению.

02 · Пример

Как объяснить на практике

Go-сервис собирается в golang-образе с кешем модулей, затем статический бинарник и CA-сертификаты копируются в distroless. Компилятор и исходники в production-образ не попадают.

Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.

03 · Ошибки

Чего избегать в ответе

Советовать Alpine без проверки libc и нативных библиотек.
Очищать apt cache отдельным RUN.
Гнаться только за размером и игнорировать безопасность.

04 · Углубление

Что могут спросить следом

  1. Как порядок COPY влияет на кеш?
  2. Чем distroless отличается от scratch?
  3. Как найти самый тяжёлый слой?

Практика ответа

Ответьте вслух, а не про себя

Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с опорой.

Потренировать ответ