В мае 2024 года пользователи из России столкнулись с недоступностью Docker Hub. Разбираем, что произошло, почему это затронуло разработчиков и компании, какие обходные варианты рассматривали и какие выводы стоит сделать для инфраструктуры.
Docker Hub — один из основных публичных сервисов для хранения, поиска и загрузки Docker-образов. В конце мая 2024 года российские пользователи столкнулись с тем, что сайт и часть операций с образами стали недоступны из-за экспортных ограничений.
По сообщениям на момент события, в официальном уведомлении на странице сервиса говорилось о необходимости соблюдать требования экспортного контроля США. Для пользователей это выглядело как внезапная потеря доступа к привычному источнику контейнерных образов и к части рабочих процессов, построенных вокруг Docker Hub.
Для команд разработки это оказалось чувствительным событием: Docker Hub часто используется в локальной разработке, CI/CD, тестовых контурах и развертывании приложений. Если базовые образы или собственные контейнеры подтягиваются только из одного внешнего registry, сбой доступа быстро превращается в проблему для сборки и выпуска изменений.
Обновление: в начале июня 2024 года появились сообщения, что доступ к Docker Hub снова работает. Поэтому материал стоит читать не как утверждение о текущей недоступности сервиса, а как разбор события и практических выводов для инфраструктуры.

В контейнерной разработке проблема доступа к registry затрагивает не только локальную команду docker pull, но и весь путь сборки, проверки и доставки приложения.

Сборки зависят от внешних образов
CI/CD может не скачать базовый образ, зависимость или служебный контейнер, если они не продублированы в доступном registry.
Развертывание становится менее предсказуемым
Команда может иметь рабочий код, но не иметь стабильного пути для сборки, публикации и доставки контейнеров в нужный контур.
Аварийный переход требует времени
Если mirror, private registry и список критичных образов не подготовлены заранее, переключение приходится делать уже под давлением инцидента.
Риск касается не только Docker Hub
Любой внешний сервис хранения артефактов может стать точкой отказа, если вокруг него не построены резервирование и понятные правила доступа.
Появляются затраты на срочную адаптацию
Командам приходится менять настройки, перепроверять pipeline, переносить образы и объяснять бизнесу, почему релиз или обновление задерживаются.
Нужно пересматривать управление артефактами
Контейнеры становятся не просто технической деталью, а частью supply chain: их хранение, доступность и контроль должны быть описаны заранее.
После сообщений о недоступности Docker Hub команды начали смотреть на другие способы хранения и доставки контейнерных образов. Универсального варианта нет: выбор зависит от инфраструктуры, требований к безопасности, стоимости владения и того, где уже живёт исходный код.
При выборе альтернативы важно учитывать не только факт доступности, но и интеграцию с CI/CD, права доступа, аудит, резервное копирование, скорость загрузки образов и понятный порядок восстановления при сбое.
Если Docker Hub или другой внешний registry используется в рабочих процессах, важно не ограничиваться разовой заменой адреса. Надёжнее заранее описать, какие образы критичны, где они должны храниться и как команда переключается при проблемах с доступом.
Настроить registry mirrors
Для Docker можно указать зеркала, чтобы daemon обращался к ним при загрузке образов. Это снижает зависимость от одного публичного адреса.
Хранить критичные образы в private registry
Базовые образы, production-артефакты и внутренние контейнеры лучше держать в контролируемом хранилище с понятными правами доступа.
Закрепить версии образов
Использование конкретных тегов и digest помогает понимать, что именно попадает в сборку, и быстрее восстанавливать окружение.
Проверить CI/CD на отказ внешнего сервиса
Полезно заранее протестировать, что произойдёт со сборкой и деплоем, если основной registry временно недоступен.
Один из быстрых технических вариантов — настроить зеркала registry, чтобы Docker daemon обращался к альтернативному источнику образов. Такой подход может помочь при временной недоступности основного репозитория, но его нельзя считать полноценной заменой стратегии хранения артефактов.
Базовая идея выглядит так: в конфигурации Docker указывается список зеркал, к которым daemon может обращаться при загрузке образов.
{ "registry-mirrors": ["https://{new_url}"] }Где смотреть конфигурацию зависит от окружения: на Linux обычно проверяют /etc/docker/daemon.json, в rootless-режиме — ~/.config/docker/daemon.json, на Windows — C:\ProgramData\docker\config\daemon.json.
Если нужно явно указать другой источник при загрузке образа, команда может выглядеть так:
docker pull {new_url}/library/alpine:latestНо mirror — это только оперативная мера. Для устойчивой работы лучше заранее определить критичные образы, хранить production-артефакты в контролируемом registry и регулярно проверять, что сборка не зависит от одного внешнего адреса.
Меньше внезапных остановок разработки
Команда не теряет день на поиск причин, если внешний registry временно недоступен.
Предсказуемее релизы
Сборка и доставка контейнеров не зависят от одного внешнего сервиса без резервного сценария.
Проще контролировать артефакты
Компания понимает, какие образы используются, где они хранятся и кто имеет к ним доступ.
Легче планировать инфраструктуру
Registry, зеркала и резервные маршруты становятся частью архитектуры, а не экстренной ручной настройкой.
Если инфраструктура зависит от внешних сервисов хранения кода, образов или артефактов, полезно проверить не только Docker Hub, но и весь путь от репозитория до production-среды. В смежном материале мы разбираем хранение исходного кода, а для комплексной проверки архитектуры и рисков можно перейти к аудиту кода и архитектуры.
30.05.2024 (обн. 05.06.2024, 15.05.2026)
© 2018–2026, ООО «РоботБулл Технолоджи» ИНН 9710065224
ОКВЭД 62.01
Сведения об ИТ-деятельности