Google представила інструмент container-diff для швидкого порівняння образів Docker-контейнерів


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Контейнери Docker – гарне рішення для прискорення розробки ПЗ, проте через їх масштабність іноді неможливо передбачити, як зміни в Dockerfile вплинуть на відповідний контейнер. Це призводить до збільшення образів й істотно утрудняє пошук помилок.

У відповідь на цю проблему команда Google Container Tools створила новий проект container-diff, призначений для швидкого порівняння образів контейнерів. За словами розробників, цей інструмент покликаний істотно полегшити розробку контейнерних додатків і відстеження виникаючих помилок.

Стислий огляд container-diff

Саме container-diff допомагає розробникам знаходити зміни, обчислюючи семантичні відмінності між двома образами. Це означає, що інструмент шукає ті дані (на нижчому рівні представлення), які піддалися зміні,  й видає отриману інформацію на екран у легкому для читання вигляді. Такий пошуковий метод дозволяє виявляти відмінності в системних і мовних пакетах, а також у файлах образу контейнера.

Важливо, що container-diff уміє порівнювати образи, збережені в різних форматах (із префіксом daemon:// для локального демона, remote:// – для видаленого і в розширенні .tar при експорті за допомогою команди “docker save”). Це може виявитися особливо корисним при експериментах із різними складаннями контейнерів, які розробник ще не готовий випустити. Новий інструмент підтримує архівацію образів і registry protocol, завдяки чому може працювати навіть у середовищах без демона Docker.

Приклади і варіанти використання

Як приклад візьмемо базовий Dockerfile, що встановлює Python у базовий образ Debian. Запущений на порівняння двох образів (старого і нового – з Python) container-diff надає користувачам інформацію про всі пакети, встановлені як залежності Python.

На рисунку представлений Dockerfile, наслідувальний від базового образу з Python і що встановлює в нього пакети mock і six. За допомогою командиpip differ можна отримати список усіх пакетів, установлених або змінених у результаті виконаних дій:

Це особливо корисно у ситуації, коли не зрозуміло, які пакети могли бути помилково змінені або встановлені після роботи над залежностями в модулях Python.

Аналіз одного образу

У container-diff є ще одна чудова можливість: він уміє аналізувати один образ сам по собі. Ця функція дозволяє користувачам швидко пройтися за основною інформацією, що міститься в образі: встановлені системні й мовні пакети та зміст файлової системи.

Знову звернемося до базового образу Debian. Виклик container-diff у відповідь видає список усіх встановлених пакетів разом з їх розмірами і версіями:

Подібний аналіз дозволяє виявити найважчі компоненти контейнера і обмеження щодо сумісності зі створюваною програмою.

Детальніша інформація і приклади доступні в документації на GitHub.

Джерело: блог Google Open Source

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *