- PVSM.RU - https://www.pvsm.ru -

Статистика по базовым операционным системам в образах на Docker Hub

Статистика по базовым операционным системам в образах на Docker Hub - 1

Американская компания Anchore, созданная основателем Ansible Inc., с помощью своего сервиса Anchore Navigator, предназначенного для исследования контейнерных образов, проанализировала Docker Hub и ответила [1] на следующие вопросы:

  1. Какие операционные системы используются больше всего?
  2. Как выбор ОС менялся на протяжении времени?
  3. Отличаются ли паттерны их использования для официальных и публичных образов?

Технические детали

Основой для упомянутого сервиса Anchore Navigator является набор Python-утилит, которые распространяются под свободной лицензией (Apache License 2.0) на GitHub [2]. Просмотр исходников помогает выяснить, как технически собирается информация об образах. Например, определение Linux-дистрибутива осуществляется [3] тривиальным запуском lsb_release.

Стоит также уточнить, что, поскольку в разных репозиториях образов следуют разным циклам релизов, в рамках этого исследования авторы учитывали только операционную систему из последнего протегированного релиза. Для некоторых образов (в качестве примера приводится library/swarm:latest) определить ОС не представлялось возможным, т.к. «подобные образы часто являются статически собранными бинарниками и не требуют ничего сверх этого для запуска».

Наконец, на данный момент анализировались только образы Docker Hub, но в дальнейшем планируется добавить статистику и по Amazon EC2 Container Registry (Amazon ECR).

Используемые ОС

Официальные образы

Явным фаворитом среди дистрибутивов, используемых в качестве базовых операционных систем для официальных образов, является Debian, а с большим отставанием от него идут Alpine и Ubuntu:

Статистика по базовым операционным системам в образах на Docker Hub - 2

Как изменялись предпочтения по базовым дистрибутивам на протяжении последнего года?

Статистика по базовым операционным системам в образах на Docker Hub - 3

Из более-менее стабильных тенденций можно отметить разве что постепенный рост Alpine (за счёт небольшого снижения популярности Debian), однако прогнозировать что-либо на основе этих данных ещё рано.

Какие версии Debian предпочтительны? Всё закономерно: с выходом 9 «Stretch» (в июне) этот релиз начал «отбирать» долю у прошлого релиза — 8 «Jessie».

Статистика по базовым операционным системам в образах на Docker Hub - 4

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

Официальные репозитории — пусть, возможно, и самые популярные, но в количественном отношении это лишь небольшая часть от всего, что можно найти на Docker Hub. Поэтому образы от сообщества (public) тоже были проанализированы в Anchore, и результаты получились несколько иными.

Самый популярный дистрибутив — это…

Статистика по базовым операционным системам в образах на Docker Hub - 5

… да, снова Debian. Однако разница с Alpine уже минимальна. А если рассматривать временную перспективу, то лидерство не было вечным: в своё время Debian уступал и Ubuntu (декабрь'16—январь'17), и Alpine (июнь'17).

Статистика по базовым операционным системам в образах на Docker Hub - 6

В целом же есть схожая тенденция: в последнее время популярность Debian немного снижается, а у Alpine — растёт. Третий дистрибутив — Ubuntu — достиг своего минимума в июне, но снова пошёл вверх. Появившийся в рейтинге дистрибутивов Raspbian свидетельствует об интересе сообщества к Docker-образам на соответствующих устройствах.

Размер образов

Выбор базовой операционной системы для контейнеров для многих обусловлен размером конечного образа: действительно, зачем (при прочих равных) тащить в образ файлы, которые точно не будут в нём использоваться? Поэтому в своё исследование специалисты из Anchore включили и этот критерий.

Вряд ли кто-то удивится, что образ базовой ОС минимален у BusyBox и Alpine. Из дистрибутивов «общего назначения» среднюю позицию занимают Debian/Ubuntu и openSUSE (около 110—120 Мб), а самыми «толстыми» оказались Oracle Linux и Fedora (более 200 Мб).

Статистика по базовым операционным системам в образах на Docker Hub - 7

Какими получаются по размеру итоговые образы на базе различных систем? Довольно очевидно: «в среднем по больнице» самые маленькие образы — на базе BusyBox и Alpine, а самые большие — с CentOS, Ubuntu и Debian. По очевидным причинам, отличный показатель демонстрирует Raspbian. При этом официальные образы, как правило, в среднем значительно меньше, чем образы от сообщества. Но интересно, что «белой вороной» тут оказался Alpine, образы от сообщества на базе которого в среднем меньше официальных.

Статистика по базовым операционным системам в образах на Docker Hub - 8

P.S.

Напоследок, статистика [4] немного другого рода от прошлого года — о росте числа pull'ов в Docker Hub на фоне этапов развития Docker (найти более новую, к сожалению, не представляется возможным):

Статистика по базовым операционным системам в образах на Docker Hub - 9

Мы в качестве базовой системы для своих образов используем Ubuntu, а вы?

P.P.S. Читайте также в нашем блоге:

Автор: Дмитрий Шурупов

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/263510

Ссылки в тексте:

[1] ответила: https://anchore.com/blog/breakdown-operating-systems-dockerhub/

[2] GitHub: https://github.com/anchore/anchore

[3] осуществляется: https://github.com/anchore/anchore/blob/ffbcd64e2384f947d68bf7cb77e8ce719b0a6d6e/anchore/util/resources.py#L36

[4] статистика: https://blog.docker.com/2016/10/introducing-infrakit-an-open-source-toolkit-for-declarative-infrastructure/

[5] Собираем Docker-образы для CI/CD быстро и удобно вместе с dapp (обзор и видео): https://habrahabr.ru/company/flant/blog/324274/

[6] Какие известные компании используют Docker в production и для чего?: https://habrahabr.ru/company/flant/blog/326784/

[7] Источник: https://habrahabr.ru/post/337448/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best