Приветствую вас, комрады!

Есть довольно редкоземельная, но полезная утилитка, обзывается она - Crane Примеры использования:

Копирование образа между реестрами (без необходимости их пулить себе).

Бывало у вас такое, что нужно перенести образ из одного реестра в другой?

С crane это делается на раз-два:

crane cp gcr.io/shlyapa-project/executor:v1.7.0-debug myharbor.ru/shlyapa-executor:v1.7.0-debug

Эта команда скопирует образ executor:v1.7.0-debug из реестра gcr.io в ваш собственный реджистри myharbor.ru.

Просмотр содержимого образа:

Иногда хочется заглянуть внутрь образа и посмотреть, что там внутри.

С crane это проще простого:

crane export executor - | tar -tvf - | less

Здесь мы экспортируем файловую систему образа executor и просматриваем список файлов с помощью команды tar.

Извлечение конкретного файла из образа:

Нужно достать нужный файл из образа? Легко!

crane export executor - | tar -Oxf - etc/passwd

Эта команда извлечет файл passwd из директории etc образа executor и выведет его содержимое. Сравнение конфигураций двух версий образа:

Хотите узнать, чем отличаются конфигурации двух версий одного образа? Пожалуйста:

diff <(crane config front:1.32 | jq) <(crane config front:1.33 | jq)

Здесь мы сравниваем конфигурации версий 1.32 и 1.33 образа front с помощью утилиты diff.

Получение размера образа:

Интересно, сколько весит ваш образ? Вот как это узнать:

crane manifest gcr.io/buildpacks/builder:v1 | jq '.config.size + ([.layers[].size] | add)'

Эта команда выводит суммарный размер конфигурации и всех слоев образа.

Изменение меток и аннотаций образа:

Вы можете добавлять или изменять метки и аннотации в существующем образе без необходимости его повторной сборки:

crane mutate myharbor.ru/shlyapa-project/bear_ass_image:tag --annotation "org.opencontainers.image.description=New description" --label "version=2.0"

Эта команда добавит или обновит аннотацию и метку в указанном образе.

Также можно доложить tarbar (архивы .tar .tar.gz .tgz), добавить тэг (удобнее чем в дефолтном докер клиенте), задать другой entrypoint и т.д.

И это ещё не всё)

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Но это чем я пользую практически регулярно. + это 1 бинарь (на любимой многими GOшечке) что позволяет спокойно его использовать и в системах автосборки и упростить взаимодействие с контейнерами.