← Ко всем open source проектам

dive

wagoodman/dive

dive — инструмент для просмотра слоев Docker/OCI-образа и поиска способов уменьшить его размер.

Форки 1,988
Автор wagoodman
Язык Go
Лицензия Не указано
Обновлено 2026-06-27

Что это такое

dive — инструмент для анализа Docker/OCI-образов по слоям. Он показывает содержимое образа, изменения между слоями и места, где можно уменьшить итоговый размер.

Проект появился вокруг частой проблемы контейнеров: образ работает, но непонятно, почему он такой большой. В Dockerfile может быть всего несколько строк, а внутри остаются кеши, временные файлы и лишние зависимости.

dive делает невидимое видимым. Вместо догадок пользователь открывает образ, проходит по слоям и видит, какие файлы были добавлены, изменены или удалены на каждом шаге сборки.

Что внутри репозитория

Внутри репозитория находится Go-приложение, инструкции по установке, описание базовых возможностей, интеграция с CI, клавиши управления и настройки интерфейса.

Инструмент полезен и локально, и в проверках сборки. Локально он помогает разработчику понять, что происходит с образом, а в CI может остановить изменение, если эффективность образа ухудшилась сильнее допустимого.

Как это обычно используют

Обычный сценарий: собрать образ, запустить dive с тегом или идентификатором, пройтись по слоям и найти большие каталоги, которые можно убрать, объединить или перенести в другой этап сборки.

Для команд dive особенно полезен как учебный инструмент. После нескольких просмотров становится понятнее, почему порядок команд в Dockerfile влияет на размер и кеширование.

Анализ образа по слоям

Команда открывает интерактивный просмотр образа. Смысл в том, чтобы увидеть, какой слой добавил файлы и где можно уменьшить итоговый размер.

Язык: Bash
dive my-image:latest

Что получается на практике

Сильная сторона проекта — наглядность. Таблица слоев и файловая структура объясняют проблему быстрее, чем сухая строка с размером образа.

Еще один плюс — возможность встроить проверку в процесс сборки. Если команда хочет держать образы компактными, автоматическая оценка помогает не откладывать уборку до последнего момента.

Ограничения и аккуратные места

Ограничение в том, что dive показывает последствия, но не исправляет архитектуру сборки за разработчика. Нужно самому понимать многоступенчатые сборки, кеши пакетных менеджеров и состав базовых образов.

Также инструмент не заменяет проверку безопасности. Маленький образ не обязательно безопасный, а большой образ не всегда плохой; размер — только один из сигналов качества.

Кому подойдет

Лучше всего dive подходит разработчикам и DevOps-инженерам, которые регулярно собирают контейнеры и хотят понимать, куда уходит место внутри образа.

В каталоге dive важен как пример точного инструмента для инфраструктурной гигиены: он не строит контейнеры сам, а помогает увидеть, что именно попало внутрь.