Вопрос проверяет понимание процесса сборки Docker-образов и принципов работы Dockerfile.
Во время docker build Docker читает Dockerfile и выполняет инструкции по порядку. Для каждой инструкции создаётся слой образа. Docker использует кэширование, если шаг не изменился. В результате формируется финальный Docker-образ. Этот образ можно запускать как контейнер.
Процесс docker build — это детерминированная последовательность шагов по созданию образа.
Docker build — процесс сборки Docker-образа на основе Dockerfile и контекста сборки.
Перед запуском контейнера Docker выполняет следующие шаги:
Загрузка контекста
файлы проекта
.dockerignore
Чтение Dockerfile
инструкции обрабатываются сверху вниз
каждая инструкция — отдельный шаг
Выполнение инструкций
FROM, RUN, COPY, ENV и др.
создание промежуточных слоёв
Кэширование
повторное использование слоёв
ускорение сборки
Формирование образа
итоговый immutable-образ
готов к запуску
FROM python:3.11
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
Если requirements.txt не менялся, шаг с pip install берётся из кэша.
docker build создаёт воспроизводимый образ, используя слои и кэш, что позволяет ускорять сборку и контролировать окружение.