Как устроены слои Docker и как держать образ маленьким?
Каждая инструкция создаёт read-only слой, слои кешируются и переиспользуются, пока не менялось всё, что было до них, — поэтому манифест зависимостей копируют и ставят зависимости до копирования исходников. Размер снижают многоступенчатой сборкой, которая оставляет компилятор позади, slim- или distroless-базой и объединением команд, чтобы промежуточные файлы вообще не попали в слой. Удаление файла в более позднем слое образ не уменьшает — он всё ещё лежит в раннем слое.