Что это такое
dive — инструмент для анализа Docker/OCI-образов по слоям. Он показывает содержимое образа, изменения между слоями и места, где можно уменьшить итоговый размер.
Проект появился вокруг частой проблемы контейнеров: образ работает, но непонятно, почему он такой большой. В Dockerfile может быть всего несколько строк, а внутри остаются кеши, временные файлы и лишние зависимости.
dive делает невидимое видимым. Вместо догадок пользователь открывает образ, проходит по слоям и видит, какие файлы были добавлены, изменены или удалены на каждом шаге сборки.
Что внутри репозитория
Внутри репозитория находится Go-приложение, инструкции по установке, описание базовых возможностей, интеграция с CI, клавиши управления и настройки интерфейса.
Инструмент полезен и локально, и в проверках сборки. Локально он помогает разработчику понять, что происходит с образом, а в CI может остановить изменение, если эффективность образа ухудшилась сильнее допустимого.
Как это обычно используют
Обычный сценарий: собрать образ, запустить dive с тегом или идентификатором, пройтись по слоям и найти большие каталоги, которые можно убрать, объединить или перенести в другой этап сборки.
Для команд dive особенно полезен как учебный инструмент. После нескольких просмотров становится понятнее, почему порядок команд в Dockerfile влияет на размер и кеширование.
Анализ образа по слоям
Команда открывает интерактивный просмотр образа. Смысл в том, чтобы увидеть, какой слой добавил файлы и где можно уменьшить итоговый размер.
dive my-image:latest
Что получается на практике
Сильная сторона проекта — наглядность. Таблица слоев и файловая структура объясняют проблему быстрее, чем сухая строка с размером образа.
Еще один плюс — возможность встроить проверку в процесс сборки. Если команда хочет держать образы компактными, автоматическая оценка помогает не откладывать уборку до последнего момента.
Ограничения и аккуратные места
Ограничение в том, что dive показывает последствия, но не исправляет архитектуру сборки за разработчика. Нужно самому понимать многоступенчатые сборки, кеши пакетных менеджеров и состав базовых образов.
Также инструмент не заменяет проверку безопасности. Маленький образ не обязательно безопасный, а большой образ не всегда плохой; размер — только один из сигналов качества.
Кому подойдет
Лучше всего dive подходит разработчикам и DevOps-инженерам, которые регулярно собирают контейнеры и хотят понимать, куда уходит место внутри образа.
В каталоге dive важен как пример точного инструмента для инфраструктурной гигиены: он не строит контейнеры сам, а помогает увидеть, что именно попало внутрь.