TGViewer
Верхняя полка📝 Верхняя полка📝 @stopshelf · 358 subscribers
Post #336 486
Dive — способ занырнуть внутрь Docker-образа 🤿

Мне не часто приходится создавать Docker-образы с нуля, но всякий раз после этого возникают одни и те же вопросы:
— А точно ли туда попало всё, что нужно?
— А не попало ли туда что-то лишнее?
— Как вообще выглядит структура папок и файлов внутри образа? 🤔

Особенно много таких вопросов возникает при использовании всяких "нетрадиционных" инструментов, которые обходятся без явного Dockerfile-а, например, Google Jib или Buildpack. Я рассказывал о них в докладе на конференции Joker в 2020 году: https://toparvion.pro/event/2020/joker/ 🍿

Обычно ответы на эти вопросы получают путём запуска контейнера из образа и входа в него с каким-нибудь bash-ем, чтобы походить по файловой системе и посмотреть, что там лежит. Но что если контейнер не запускается или его пока нельзя запускать? И как понять, откуда именно в контейнере взялась та или иная часть директорий или файлов? 🧐

Подобные задачи отлично решает консольная утилита Dive. Она умеет доставать образы из Docker-демона, анализировать их и показывать:
● из каких слоёв состоит образ (даже если он создан не по Dockerfile'у)
● сколько весит каждый слой
● какие файлы и директории создаёт/меняет/удаляет каждый слой на финальной файловой системе контейнера 🔬

Дополнительно Dive умеет подсчитывать условную "эффективность образа" — это доля размера образа, которая не была потрачена на дублирование или перемещение файлов между слоями. Ни разу не видел, чтобы эта цифра была сколь-нибудь значимой, но звучит прикольно🙂

Лично для меня отдельной большой ценностью утилиты стала возможность просмотра прав на чтение/запись/исполнение каждого файла в образе — это сильно помогает, когда пытаешься понять, из-за чего в контейнере что-то ломается с ошибкой "Permission Denied" 🔐

Если вы еще не пользовались этой штукой, ответственно рекомендую попробовать. К тому же сделать это предельно просто: Dive — это всего-навсего один исполняемый файл, который не требует инсталляции и в 95% случаев обходится без настроек. Вот бы все наши вспомогательные #инструменты были такими же, да?..🤩
  • 👍 10
  • ❤ 4
  • 🔥 2
More from @stopshelf
  1. Oct 4, 2026Post #487
  2. Oct 3, 2026Странный юмор
  3. Oct 2, 2026Post #485
  4. Sep 18, 2026#инструменты для презентаций на Markdown Сегодня нужно было по-быстрому сделать слайды для…
  5. Sep 14, 2026Post #483
  6. Aug 31, 2026Игровой портал в прошлое 🔮 Года полтора назад я захотел показать ребёнку игру моего детст…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →