Docker Hub Is Down
24 сентября 2025 года Docker столкнулся с проблемами аутентификации в Docker Hub, включая реестр, веб-сервисы и связанные компоненты вроде Docker Scout и Build Cloud. Инцидент начался около 16:09 по тихоокеанскому времени с повышенного уровня ошибок при запросах на вход, что привело к расследованию и последующему внедрению исправления к 18:09.
К 18:29 проблема была полностью решена, и система вернулась в рабочее состояние. Пользователям рекомендовали перезайти в аккаунт для обновления сессии, если проблемы сохраняются. Это подчёркивает важность мониторинга и быстрого реагирования на сбои в критической инфраструктуре.
Комментарии (79)
- Пользователи столкнулись с масштабным простоем Docker Hub, что привело к сбоям в деплое, CI/CD и разработке
- Обсуждаются решения для избежания зависимости от Docker Hub: локальные mirror-реестры (Harbor, Zot), pull-through кэши (AWS ECR, GAR, GitLab Registry)
- Предлагаются альтернативные регистри: Quay.io, GitHub Container Registry, публичный ECR от AWS с mirror Docker Hub
- Отмечается, что некоторые системы кэширования (например, GAR) также пострадали из-за проблем с аутентификацией на стороне Docker Hub
- Подчёркивается важность стратегии с собственным внутренним реестром для критичных окружений
Running our Docker registry on-prem with Harbor
Мы перенесли Docker-реестр в собственный дата-центр на Harbor, отказавшись от Docker Hub и ECR.
Причины: счета за лицензию и трафик, 45-секундные задержки деплоя, риски утечек, лимиты API.
Критерии нового решения: надёжность, скорость, простота, open-source.
Выбрали Harbor: богаче функций, чем «голый» distribution, ставится через docker-compose.
v1-дизайн
- Хранилище: S3-совместимый Pure FlashBlade.
- Две независимые копии в Ashburn и Chicago (пока без HA PostgreSQL/Redis).
- Политики очистки для экономии места.
Минимальные права на бакет
s3:AbortMultipartUpload, DeleteObject, GetBucketLocation, GetObject, ListBucket, ListBucketMultipartUploads, ListMultipartUploadParts, PutObject
harbor.yml (фрагмент)
hostname: "#{node['fqdn']}"
http: { port: 80 }
data_volume: /data
storage_service:
s3:
bucket: docker-registry-bucket
accesskey: "#{bucket_credentials['access_key']}"
secretkey: "#{bucket_credentials['secret_key']}"
regionendpoint: "https://purestorage.#{node['domain']}"
metric: { enabled: true, port: 9090, path: /metrics }
Конфиг разворачивается Chef на выделенных нодах, SSL-терминация на F5.
Комментарии (59)
- Harbor удобен: SSO, Terraform-провайдер, но нет API для токена при
docker login, приходится создавать robot-аккаунты. - Ресурсы 32 CPU / 64 GB RAM выглядят завышенными для 32 000 пуллов за два месяца; скорее всего, просто оверпровижн.
- Многие используют один «источник истины» Harbor + региональные кэши или просто registry в режиме pull-through-cache.
- У Harbor нет OIDC-доступа из GitHub Actions, апгрейды ручные; Nexus проще для Maven/NuGet, но тоже прожорлив и иногда не чистит блобы.
- ECR в AWS дешёв (~3 $/мес) и без хостинга, но не on-prem; для S3-подобного хранилища советуют SeaweedFS, Garage или Pure Flashblade.