Минимизация образов корневых файловых систем Docker контейнеров

9 Jul 2021, 11:30
15m
310 or Online - https://jinr.webex.com/jinr/j.php?MTID=m326d389213a5963a1114b8cbf9613612

310 or Online - https://jinr.webex.com/jinr/j.php?MTID=m326d389213a5963a1114b8cbf9613612

https://jinr.webex.com/jinr/j.php?MTID=m326d389213a5963a1114b8cbf9613612
Sectional reports 7. Virtualization Virtualization

Speaker

Irina Nikolaeva

Description

В последнее время при разработке и тестировании приложений достаточно часто обращаются к контейнерам. Это обусловлено тем, что контейнер – это удобный в использовании и легковесный инструмент. Контейнер собирается на основе образа, который является шаблоном будущего контейнера, а также с помощью образа контейнер передается по сети. Размер образов может достигать нескольких гигабайт. Таким образом, если требуется передать по сети приложение, образы контейнеров которого достаточно объемны, либо присутствует физическое ограничение доступной памяти (например, при разработке IoT систем), необходима минимизация размера образа.
Образы контейнеров строятся на основе ядра операционной системы Linux, и вся работа с образами – это инструкции оболочки. Для интерактивной работы с контейнерами они включают в себя инструкции и файлы, с которыми приложение внутри контейнера никогда не работает. Сами приложения, которые будут запущены в контейнере, и их количество заранее известны, поэтому при помощи средств отладки Linux можно понять, какие файлы используются приложениями в контейнере, а какие можно исключить из него. Именно так работает приложение chainsaw.
В данной работе представлены результаты исследования нескольких разных образов Docker контейнеров. Было получено уменьшение в 3 раза для некоторых из образов, а также установлено, что на размер уменьшенного образа существенно влияют используемый базовый образ и язык программирования, на котором написано приложение, работающее внутри контейнера.

Primary authors

Irina Nikolaeva Ivan Gankevich (Saint Petersburg State University)

Presentation materials