PassFront
  1. PassFront
  2. База знаний
  3. Docker Compose

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

Docker Compose

Размер уменьшают четырьмя приёмами: лёгкий базовый образ, multi-stage сборка, минимизация числа слоёв с очисткой мусора в том же RUN и выкидывание лишнего из контекста через .dockerignore.

Основные приёмы

  • Базовый образ: alpine или distroless вместо полного дистрибутива; варианты -slim — компромисс с glibc вместо musl.
  • Multi-stage: компиляция в тяжёлой стадии, в финал копируется только артефакт.
  • Очистка в том же слое: RUN apt-get update && apt-get install -y pkg && rm -rf /var/lib/apt/lists/* — иначе кеш пакетов останется в слое навсегда.
  • `.dockerignore`: убрать node_modules, .git, артефакты из контекста — меньше контекст и ниже риск случайного COPY . ..

Чем измерять

  • docker history image:tag покажет вес каждого слоя; утилита dive — интерактивный разбор.

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

Вес образа складывается из базового образа, инструментов сборки и мусора, застрявшего в слоях. Помогают slim, alpine и distroless-базы, multi-stage и очистка в той же инструкции RUN: rm в следующем слое ничего не экономит, потому что байты остаются в предыдущем.

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