Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
DOCKER_PULL_RATE_LIMIT Linux / DevOps

Ошибки аутентификации Docker Hub: Credential Helpers и обход Rate Limit (429)

Обновлено: 21.08.2026
  • Ошибка toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits.
  • Предупреждение безопасности о хранении незашифрованных токенов в ~/.docker/config.json.
  • Ошибка docker login: Error saving credentials: error storing credentials in strength store.

1. Проверка текущих лимитов Docker Hub через curl

Получите анонимный токен и запросите заголовки квоты скачивания (RateLimit-Remaining):

TOKEN=$(curl -s "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1 | grep -i ratelimit

2. Настройка безопасного хранилища Docker Credentials (pass / secretservice)

# Установка хелпера на Debian/Ubuntu
apt-get install -y pass docker-credential-pass

# Инициализация GPG ключа для pass
gpg --generate-key
pass init <your_gpg_key_id>

В файле ~/.docker/config.json укажите помощник:

{
  "credsStore": "pass"
}

3. Настройка локального Registry-Mirror для обхода лимитов

Отредактируйте /etc/docker/daemon.json на рабочих нодах:

{
  "registry-mirrors": [
    "https://mirror.gcr.io",
    "https://registry.internal.domain.com"
  ]
}
systemctl daemon-reload && systemctl restart docker
Практический опыт инженера: В CI/CD пайплайнах (GitLab CI, GitHub Actions) всегда разворачивайте локальный кэширующий прокси-реестр (например, Nexus, Harbor или Registry pull-through cache), чтобы раннеры не блокировались лимитами Docker Hub.

Частые вопросы (FAQ)

Каковы лимиты на скачивание образов в Docker Hub?

Для анонимных пользователей действует лимит 100 скачиваний за 6 часов на один публичный IP. Для авторизованных бесплатных аккаунтов (Free Docker ID) — 200 скачиваний за 6 часов.

Почему при docker login пароль сохраняется в формате base64?

По умолчанию Docker сохраняет учетные данные в незашифрованном Base64 виде в ~/.docker/config.json. Для шифрования необходимо использовать credsStore (pass, osxkeychain или wincred).