Как вы уже знаете, образ контейнера Docker представляет собой легкий, автономный исполняемый пакет программного обеспечения, в котором есть все необходимое для запуска приложения.
Вот почему образа контейнеров часто используются разработчиками для создания и распространения приложений.
Если вам интересно узнать, что находится в самом образе Docker, это краткое руководство может вам помочь в этом.
Сегодня мы научимся анализировать и исследовать содержимое образов Docker с помощью инструмента под названием «Dive».
Анализируя образ Docker, мы можем обнаружить возможные дубликаты файлов по слоям и удалить их, чтобы уменьшить размер образа.
Утилита Dive – это не только анализатор Docker, но и помогает нам собирать образа.
Установка Dive
Скачайте последнюю версию со страницы выпуска и установите ее, как показано ниже, в зависимости от используемого вами дистрибутива.
Если вы находитесь в Debian или Ubuntu, запустите следующие команды, чтобы загрузить и установить его.
$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb
$ sudo apt install ./dive_0.0.8_linux_amd64.deb
На RHEL/CentOS:
$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm
$ sudo rpm -i dive_0.0.8_linux_amd64.rpm
Dive также может быть установлен с помощью диспетчера пакетов Linuxbrew.
$ brew tap wagoodman/dive
$ brew install dive
Для других способов установки см. Страницу проекта GitHub, приведенную в конце этого руководства.
Анализ и исследование содержимого образов Docker
Чтобы проанализировать образ Docker, просто запустите команду Dive с id образа.
Вы можете получить идентификаторы изображений Docker с помощью команды «sudo docker images».
$ sudo dive ea4c82dcd15a
Здесь ea4c82dcd15a является идентификатором образа Docker.
Команда Dive быстро проанализирует данный образ Docker и отобразит его содержимое в терминале.
Как вы можете видеть на скриншоте выше слои данного образа и его детали, потерянное пространство отображаются на левой панели.
На правой панели – содержимое каждого слоя в данном образе Docker.
Вы можете переключаться между левой и правой панелью с помощью клавиш Ctrl + SPACEBAR и клавиш со стрелками ВВЕРХ / ВНИЗ для перемещения по дереву каталогов.
Список сочетаний клавиш для использования «Dive».
- Ctrl + Пробел – Переключение между левой и правой панелями,
- Пробел – развернуть / свернуть дерево каталогов,
- Ctrl + A – Показать / скрыть добавленные файлы,
- Ctrl + R – Показать / скрыть удаленные файлы,
- Ctrl + M – Показать / скрыть измененные файлы,
- Ctrl + U – Показать / скрыть немодифицированные файлы,
- Ctrl + L – Показать изменения слоя,
- Ctrl + A – Показать изменения слоя,
- Ctrl + / – Фильтровать файлы,
- Ctrl + C – выход.
В приведенном выше примере я использовал разрешение «sudo», потому что мои образа Docker хранятся в каталоге /var/lib/docker/.
Если у вас они в каталоге $ HOME или где-либо в не принадлежащем пользователю root, вам не нужно использовать «sudo».
Вы также можете создать образ Docker и выполнить немедленный анализ с помощью одной команды:
$ dive build -t <some-tag>
Инструмент все еще находится в стадии бета-тестирования, поэтому будут ошибки.
Если вы столкнулись с любыми ошибками, сообщите об этом на странице github проекта.
И это все на сегодня. Теперь вы знаете, как исследовать и анализировать содержимое образа контейнера Docker и как его создать с помощью инструмента Dive.