#Что означает ошибка
pull access denied for image, repository does not exist or may require 'docker login'
Ошибка pull access denied for ..., repository does not exist or may require authorization означает, что Docker не нашёл образ с таким именем в реестре или нет доступа. Причины: опечатка в имени, нужен docker login, приватный репозиторий, неверный тег или образ существует только локально.
Docker скрывает наличие приватных образов, поэтому текст ошибки одинаков для двух ситуаций.
Проверьте имя на Docker Hub и авторизацию.
Docker не может скачать образ: имя указано неверно, образ приватный и требует входа, либо тег не существует. Проверьте имя и выполните docker login.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Опечатка в имени образа | Имя. | Исправьте. |
| Приватный репозиторий | Нужен вход. | docker login. |
| Нет такого тега | Тег. | Проверьте. |
| Лимиты Docker Hub | Анонимные. | Войдите. |
#Пошаговое решение
- Проверьте имя и тег образаВ терминале запишите точную команду
docker pull, имя образа и тег из сообщения. Для Docker Hub проверьте репозиторий на официальной странице и правильность регистра/пространства имён:myorg/myapp:1.2иmyapp:1.2— разные образы. Если тег не указан, Docker может попытаться использоватьlatest, которого у проекта может не быть. Не подставляйте чужие образы с похожими именами. - Укажите хост реестраЕсли образ находится не на Docker Hub, команда должна содержать полный адрес реестра, например
ghcr.io/organization/image:tagилиregistry.example.org/team/image:tag. Откройте документацию проекта и скопируйте точный адрес из раздела установки. Для приватного реестра уточните адрес сервера, требуемую сеть/VPN и доверенные сертификаты; не отключайте TLS-проверку ради скачивания. - Выполните docker loginЕсли репозиторий приватный, откройте терминал и выполните
docker login ghcr.io(домен замените фактическим). Введите имя пользователя и защищённый токен с минимальным правом чтения образов; для Docker Hub можно использовать поддерживаемый вход через браузер/токен. Не передавайте пароль в параметре-pв командной строке. После успешного входа повторитеdocker pullдля ТОГО ЖЕ адреса образа; при отказе проверьте права доступа к проекту. - Проверьте доступ к рееструДля диагностики сети используйте
curl -I https://registry-1.docker.io/v2/на Linux/macOS с сетевым доступом. Ответ HTTP 401 с заголовком аутентификации для API реестра может быть нормальным и доказывает достижимость узла;Could not resolve host/timeout указывают на DNS/маршрут/прокси. Если реестр корпоративный, проверьте его собственный адрес. Не путайте сетевую ошибку с запретом доступа к конкретному репозиторию. - Проверьте архитектуру образаЕсли образ опубликован, но не загружается для текущего процессора, проверьте платформу командой
docker info --format "{{.Architecture}}"и список поддерживаемых платформ черезdocker buildx imagetools inspect ПОЛНОЕ_ИМЯ:ТЕГ(если buildx установлен). Если manifest не содержит нужной архитектуры, запросите у владельца поддерживаемый образ; параметр--platformможет запустить эмуляцию, но не создаст отсутствующий рабочий образ и повлияет на производительность. - Вход в реестр образовLinux · Терминал (Bash)КомандаВход в реестр образов.
docker login
#Имя и тег
Сверьте имя на : официальные образы пишутся без пространства имён (nginx), остальные — пользователь/образ. Проверьте тег: docker pull nginx:1.27. Для других реестров укажите хост: ghcr.io/org/app:tag, registry.gitlab.com/group/project. Если вы собирали образ локально, он не может быть скачан — используйте docker images и build вместо image с pull.
#Авторизация
Для приватных репозиториев выполните docker login (или docker login ghcr.io -u USER, пароль — токен доступа с правом чтения пакетов). Проверьте ~/.docker/config.json на устаревшие данные: docker logout и войдите заново. В CI используйте секреты. Если вы в России, часть реестров может быть недоступна; проверьте доступность curl -I https://registry-1.docker.io/v2/ и зеркала.
#Compose и платформа
В docker-compose.yml проверьте image: и build:: при наличии build образ собирается локально, а pull_policy может мешать. Для Apple Silicon укажите platform: linux/amd64, если нужной архитектуры нет в манифесте. Лимиты Docker Hub для анонимных загрузок могут давать ошибку toomanyrequests: авторизуйтесь для повышения лимита.
# Пример входа в GHCR; реестр подставьте фактическийdocker login ghcr.io# Пример публичного образа Docker Hub (НЕ проверка вашего приватного проекта)docker pull nginx:1.27curl -I https://registry-1.docker.io/v2/