Анализируйте и исследуйте содержимое образов Docker
Проверка содержимого образа Docker с помощью Dive
Как вы, возможно, уже знаете, образ контейнера Docker — это легкий автономный исполняемый пакет программного обеспечения, в котором есть все необходимое для запуска приложения. Вот почему образы контейнеров часто используются разработчиками для создания и распространения приложений. Если вам интересно узнать, что находится в образе Docker, это краткое руководство может вам помочь. Сегодня мы научимся анализировать и исследовать содержимое образов Docker слой за слоем с помощью инструмента под названием "Погружение".
Анализируя образ Docker, мы можем обнаружить возможные дубликаты файлов на всех слоях и удалить их, чтобы уменьшить размер образа Docker.
Утилита Dive — это не просто анализатор изображений Docker, но и помогает нам его создавать. Dive — бесплатный инструмент с открытым исходным кодом, написанный на языке программирования Go.
Установите Dive в Linux
Получите последнюю версию на странице выпусков и установите ее, как показано ниже, в зависимости от используемого вами дистрибутива.
Если вы используете 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
Он доступен в AUR, поэтому его можно установить с помощью любых вспомогательных инструментов AUR, например Yay, в Arch Linux и его вариантах.
yay -S dive
Dive также можно установить с помощью менеджера пакетов Linuxbrew.
brew tap wagoodman/dive
brew install dive
Чтобы узнать о других методах установки, посетите страницу проекта на GitHub, указанную в конце этого руководства.
Анализируйте и исследуйте содержимое образов Docker
Чтобы проанализировать образ Docker, просто запустите команду погружения с идентификатором изображения Docker. Вы можете получить идентификаторы ваших изображений Docker, используя команду «sudo docker images».
sudo dive ea4c82dcd15a
Здесь ea4c82dcd15a — идентификатор образа Docker.
Команда Dive быстро проанализирует данный образ Docker и отобразит его содержимое в терминале.
Как вы можете видеть на скриншоте выше, слои данного образа Docker и его детали, а также потраченное пространство показаны на левой панели. На правой панели — содержимое каждого слоя данного образа Docker. Вы можете переключаться между левой и правой панелью с помощью клавиши Ctrl+ПРОБЕЛ и клавиш со стрелками ВВЕРХ/ВНИЗ для перемещения по дереву каталогов.
Список сочетаний клавиш для использования «Погружения».
- 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, приведенную ниже.
Ресурс:
- Страница GitHub