Оценка итогового объёма Docker‑образа после выполнения инструкций

Образ не станет размером 2 KB: архив останется в нижнем COPY-слое, а распакованные данные добавят ещё один слой. Точный размер без содержимого архива неизвестен.

Короткий ответ

Что ответить на собеседовании

Образ не станет размером 2 KB: архив останется в нижнем COPY-слое, а распакованные данные добавят ещё один слой. Точный размер без содержимого архива неизвестен.

Подробный разбор

Ответ с пояснениями

Условие

Какой примерный размер получится у Docker‑образа, если использовать следующие файлы:

  • big.tar.gz – около 2 ГБ
  • small.txt – около 2 KB
FROM alpine
RUN mkdir /opt/tmp
COPY big.tar.gz /opt/tmp/big.tar.gz
RUN tar -xvzf /opt/tmp/big.tar.gz
COPY small.txt /opt/small.txt
RUN rm -rf /opt/tmp

Ответ

Образ не станет размером 2 KB: архив останется в нижнем COPY-слое, а распакованные данные добавят ещё один слой. Точный размер без содержимого архива неизвестен.

Ориентир для несжатой суммы слоёв — базовый Alpine плюс около 2 ГБ архива, распакованные файлы и small.txt. Удаление в следующем RUN скрывает файлы, но не убирает их из прежних слоёв. Кроме того, tar без -C распаковывает в текущий рабочий каталог, не обязательно /opt/tmp. Для уменьшения итогового образа используйте отдельную build-stage с копированием только нужных результатов; размер передачи сжатых слоёв считайте отдельно.

Источник: docs.docker.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее