PassFront
  1. PassFront
  2. База знаний
  3. Основы Docker

Что такое слои Docker-образа и как работает кеширование при сборке?

Основы Docker

Образ — это стек read-only слоёв, примерно по одному на инструкцию Dockerfile; при сборке Docker переиспользует закешированные слои, пока не изменилась инструкция или её входные данные.

Как работает кеш

  • Docker идёт по Dockerfile сверху вниз: если инструкция и контекст не менялись, слой берётся из кеша (пометка CACHED).
  • Первое же изменение инвалидирует кеш этой и всех последующих инструкций.
  • Сброс кеша: docker build --no-cache целиком или точечно через build-аргументы.

Главное правило Dockerfile

Сначала редко меняющееся, потом часто меняющееся:

COPY package*.json ./
RUN npm ci       # закешируется, пока не тронут package.json
COPY . .         # код меняется чаще всего — кладём в конец

Зачем это важно

  • Правильный порядок сокращает сборку с минут до секунд.
  • Слои разделяются между образами: десять образов на базе node:20 хранят базовые слои один раз.

Коротко для собеседования

Каждая инструкция Dockerfile даёт слой, и Docker берёт его из кеша, пока не изменились сама инструкция и её файлы; первое же изменение пересобирает всё ниже. Поэтому зависимости ставят до копирования исходников — тогда правка кода не запускает npm ci заново.

Другие вопросы раздела