Открыть сервис

Docker Hub

Docker Hub — это облачный реестр контейнерных образов, предоставляемый компанией Docker Inc., предназначенный для хранения, распространения и совместного использования образов контейнеров в формате Docker. Он является крупнейшим публичным реестром контейнеров в мире и служит центральным узлом экосистемы Docker, позволяя разработчикам публиковать готовые образы приложений, библиотек и инструментов, а также автоматически развёртывать их на любых платформах, поддерживающих Docker.

История

Docker Hub был запущен в 2014 году компанией Docker Inc. как часть экосистемы Docker, которая к тому моменту стала стандартом де-факто для контейнеризации приложений. Изначально сервис предоставлял бесплатный доступ к публичным репозиториям и ограниченное количество частных репозиториев для индивидуальных пользователей. В 2015 году, после приобретения компании Tutum, Docker Inc. интегрировала в Docker Hub функции автоматической сборки образов из исходного кода, хранящегося в системах контроля версий, таких как GitHub и Bitbucket.

В 2016 году Docker Hub стал частью платформы Docker Cloud, которая объединила управление образами, оркестрацию контейнеров и развёртывание в облачных средах. Однако в 2017 году Docker Inc. переориентировалась на корпоративный сегмент, и Docker Cloud был закрыт, а Docker Hub остался основным публичным сервисом. В 2020 году компания Docker Inc. была продана компании Mirantis, которая продолжила развитие Docker Hub, сохранив его базовую функциональность и внедрив новые тарифные планы.

В 2021 году Docker Hub ввёл ограничения на количество бесплатных pull-запросов (загрузок образов) для анонимных и бесплатных пользователей, что вызвало критику сообщества, но позволило снизить нагрузку на инфраструктуру и стимулировать переход на платные подписки. По состоянию на 2024 год Docker Hub остаётся основным реестром для Docker-образов, хотя существуют альтернативы, такие как Quay.io, Amazon Elastic Container Registry (ECR), Google Container Registry (GCR) и GitHub Container Registry.

Функциональные возможности

Хранение и управление образами

Docker Hub позволяет создавать как публичные, так и частные репозитории. Публичные репозитории доступны для просмотра и загрузки всем пользователям, что делает их удобными для распространения открытого программного обеспечения. Частные репозитории защищены паролем и доступны только владельцу и приглашённым участникам. Для каждого репозитория можно настроить теги (теги), которые позволяют версионировать образы (например, nginx:1.25, nginx:latest).

Автоматическая сборка (Automated Builds)

Docker Hub поддерживает автоматическую сборку образов из исходного кода, размещённого в репозиториях GitHub, Bitbucket или GitLab. При каждом коммите в указанную ветку Docker Hub запускает процесс сборки на основе файла Dockerfile, находящегося в репозитории. Это позволяет автоматизировать обновление образов и интегрировать их в процессы непрерывной интеграции (CI/CD).

Официальные образы (Official Images)

Docker Hub содержит каталог официальных образов, поддерживаемых Docker Inc. и партнёрами. Эти образы проходят проверку на безопасность, оптимизацию и соответствие лучшим практикам. К официальным относятся образы популярных операционных систем (Ubuntu, Alpine, Debian), языков программирования (Python, Node.js, Go), баз данных (MySQL, PostgreSQL, MongoDB) и веб-серверов (Nginx, Apache). Они помечены значком «Official Image» и считаются эталонными для использования в производственной среде.

Вебхуки и интеграции

Docker Hub поддерживает вебхуки (webhooks), которые позволяют уведомлять внешние системы (например, CI/CD-серверы, системы мониторинга) о событиях, таких как завершение сборки образа или обновление репозитория. Это упрощает интеграцию с пайплайнами развёртывания.

Поиск и каталогизация

Пользователи могут искать образы по названию, описанию, тегам и категориям. Docker Hub предоставляет интерфейс командной строки (CLI) и веб-интерфейс для поиска, а также поддерживает фильтрацию по типу (официальные, проверенные, сообщества).

Архитектура и протоколы

Docker Hub работает на основе протокола HTTP API, соответствующего спецификации Registry API v2, определённой Docker Inc. Взаимодействие с реестром осуществляется через команды docker pull (загрузка образа) и docker push (отправка образа). Аутентификация выполняется через сервер авторизации Docker Hub, поддерживающий токены Bearer и OAuth2.

Образы хранятся в виде слоёв (layers), каждый из которых представляет собой набор изменений файловой системы. Docker Hub использует распределённое хранилище (на базе Amazon S3 и других облачных провайдеров) для обеспечения отказоустойчивости и масштабируемости. Для ускорения загрузки образов применяется кэширование на граничных узлах (CDN).

Тарифные планы

Docker Hub предлагает несколько тарифных планов, различающихся по количеству частных репозиториев, объёму pull-запросов и дополнительным функциям:

ПланЧастные репозиторииPull-запросы (в месяц)Автоматическая сборкаПоддержка
Free1200 (для анонимных) / 200 (для авторизованных)Только из публичных репозиториевСообщество
Pro55000НеограниченноСтандартная
Team1010 000НеограниченноПриоритетная
Business10050 000НеограниченноВыделенная

Примечание: Pull-запросы — это количество загрузок образов из реестра. Ограничения в плане Free были введены в 2021 году и вызвали критику сообщества.

Безопасность и ограничения

Проверка образов

Docker Hub не проводит автоматическую проверку безопасности образов, загружаемых пользователями. Вредоносные образы могут быть загружены в публичные репозитории, что создаёт риски для пользователей, которые их скачивают. Для снижения рисков Docker Inc. рекомендует использовать официальные образы и образы от проверенных издателей (Verified Publishers). Существуют также сторонние инструменты, такие как Trivy, Clair и Docker Scout, которые могут сканировать образы на уязвимости.

Ограничения на загрузку

Docker Hub вводит ограничения на скорость загрузки (rate limits) для бесплатных пользователей. Анонимные пользователи могут выполнять до 100 pull-запросов за 6 часов, авторизованные — до 200 pull-запросов за 6 часов. Платные подписки снимают эти ограничения.

Политика удаления неактивных образов

В 2020 году Docker Inc. объявила о политике удаления образов, которые не были загружены (pull) в течение 6 месяцев, для бесплатных аккаунтов. Это вызвало обеспокоенность сообщества, и впоследствии срок был увеличен до 1 года.

Альтернативы

Docker Hub не является единственным реестром контейнеров. Существуют альтернативные решения, которые могут быть более подходящими для определённых сценариев:

  • Quay.io (Red Hat) — реестр с расширенными функциями безопасности, сканированием уязвимостей и поддержкой репликации.
  • Amazon Elastic Container Registry (ECR) — реестр, интегрированный с AWS, обеспечивающий высокую доступность и низкую задержку.
  • Google Container Registry (GCR) — реестр, интегрированный с Google Cloud Platform, с поддержкой автоматического сканирования.
  • GitHub Container Registry — реестр, встроенный в GitHub, позволяющий публиковать образы непосредственно из репозиториев.
  • GitLab Container Registry — реестр, встроенный в GitLab, с поддержкой CI/CD.
  • Harbor — open-source реестр, предоставляющий расширенные функции безопасности, репликации и управления доступом.

Критика

Docker Hub подвергается критике за несколько аспектов:

  1. Ограничения бесплатного уровня — введение rate limits и ограничений на количество частных репозиториев вызвало недовольство сообщества, особенно среди небольших команд и индивидуальных разработчиков.
  2. Отсутствие встроенного сканирования безопасности — в отличие от Quay.io и ECR, Docker Hub не предоставляет автоматического сканирования образов на уязвимости, что требует использования сторонних инструментов.
  3. Политика удаления неактивных образовудаление образов, которые не загружались в течение длительного времени, может нарушить процессы CI/CD, если образы используются редко.
  4. Зависимость от одного провайдера — использование Docker Hub как единственного реестра создаёт риск vendor lock-in, особенно для организаций, которые полагаются на его инфраструктуру.

Влияние на индустрию

Docker Hub сыграл ключевую роль в популяризации контейнеризации и упрощении распространения контейнерных приложений. Он стал стандартным инструментом для разработчиков, позволяя быстро находить и использовать готовые образы. Благодаря официальным образам, Docker Hub способствовал стандартизации контейнерных сред и снижению времени на настройку окружений. Несмотря на появление альтернатив, Docker Hub остаётся наиболее узнаваемым и широко используемым реестром контейнеров.

Источники

  • Docker Inc. — Docker Hub Documentation
  • Docker Inc. — Docker Hub Pricing
  • Docker Inc. — Docker Hub Rate Limits
  • Mirantis — Docker Hub Acquisition Announcement
  • Docker Inc. — Official Images Documentation
  • Docker Inc. — Automated Builds Documentation

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →