Отказано: запрошенный доступ к ресурсу запрещен: docker

Я перехожу по этой ссылке, чтобы создать мой первый образ докера, и он прошел успешно, и теперь я пытаюсь вставить этот образ в мой репозиторий по этой ссылке. Но всякий раз, когда я пытаюсь вставить этот образ в репозиторий, я получаю этот тип ошибки.

denied: requested access to the resource is denied

Может ли кто-нибудь дать мне подсказку об этой проблеме? Любая помощь будет оценена.

Примечание: я успешно вошел в докер

69 ответов

Решение

Согласно документам:

You need to include the namespace for Docker Hub to associate it with your account.
The namespace is the same as your Docker Hub account name.
You need to rename the image to YOUR_DOCKERHUB_NAME/docker-whale.

Итак, это означает, что вы должны пометить свое изображение перед нажатием:

docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage

и тогда вы сможете толкнуть его.

docker push YOUR_DOCKERHUB_NAME/firstimage

Обновление: см. Также ответ от Dean Wu. Перед нажатием не забудьте войти из командной строки в свою учетную запись докера

docker login

У меня была та же самая проблема, но принятый ответ, данный здесь, не работал для меня. Я попробовал несколько шагов и смог обойти его, чтобы наконец-то его подтолкнуть. Надеюсь, это кому-нибудь поможет.

Вот шаги, сработавшие для меня:

1) Войдите в докер.

docker login -u sirimalla

2) Пометьте свой имидж строения

мое имя изображения здесь: mylocalimage и по умолчанию оно имеет тег: последние
и мое имя пользователя: sirimalla, зарегистрированное в облаке Docker, и я создал публичный репозиторий с именем: dockerhub.

так что мой личный репозиторий становится теперь: sirimalla / dockerhub, и я хочу добавить свое изображение с тегом: myfirstimagepush

Я отметил как ниже:

docker tag mylocalimage:latest sirimalla/dockerhub:myfirstimagepush

3) Вставил изображение в мой личный докерский репозиторий, как показано ниже

docker push sirimalla/dockerhub:myfirstimagepush

И это успешно подтолкнуло к моему личному докеру репо.

У меня та же проблема, когда я проходил курс для начинающих в докере. Я решил проблему, выполнивdocker login перед вызовом докера.

Используйте команды ниже:

$ docker login
<enter user name and password for Docker Hub Repository>

$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image

$ docker push {docker-hub-username}/{default-repo-folder-name}:first-image

Например, у меня есть публичный репозиторий, такой как manjeet86/docker-repo, поэтому команды будут такими:

$ docker tag first-image manjeet86/docker-repo:first-image

$ docker push manjeet86/docker-repo:first-image

Просто посмотри : вместо / это был трюк. Меня устраивает. Я не знаю, позволяет ли это вам / а вместо : но это может быть для какой-то другой цели.

https://docs.docker.com/engine/reference/commandline/tag/

Также важно отметить, что когда вы помечаете свое изображение, вы помечаете его, используя Пространство имен, а затем свой репозиторий / mydevrepo. Это смутило меня, когда я следовал за Докером. После этого я использовал:

docker login

А потом я нажал на свое изображение, используя "помеченное имя".

docker push {namespace}/mydevrepo

Не уверен, что случилось с док-хабом, но ни одно из опубликованных решений не помогло мне. Вот обходной путь, который закончил работать для меня с января 2018 года:

  1. Перейдите на hub.docker.com и измените свой репозиторий на частный
  2. В вашей оболочке сделайте:

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE verse_gapminder_gsl latest 023ab91c6291 3 minutes ago 1.975 GB verse_gapminder latest bb38976d03cf 13 minutes ago 1.955 GB rocker/verse latest 0168d115f220 3 days ago 1.954 GB

docker tag bb38976d03cf dockhubusername/verse_gapminder:mytag

docker login docker.io

docker push dockhubusername/verse_gapminder:mytag

  1. Вернитесь в Docker Hub и измените репо на общедоступный. Это сработало для меня.

Я столкнулся с той же проблемой, я давал имя своему изображению как something/image-name но вместо этого я попробовал с <docker-hub-username>/image-name и это сработало как шарм.

Шаг 1

docker login --username=jp9573

Шаг 2

docker push jp9573/todo

Раньше я давал jaypatel/todo, Я просто изменил его на username/imageшаблон. Таким образом, мне не нужно помечать изображение или что-то в этом роде. Думаю, это хороший способ для новичка.

У меня это сработало, когда я использовал свое имя докер-хаба при добавлении тегов к изображению.

### Войдите в учетную запись Docker Hub

докер логин

## изображение тега

тег докера nginx xyz / nginx

### push изображение

docker push xyz / nginx

Я тоже был с этой проблемой, я тестировал решения, представленные здесь, но безрезультатно, я правильно вошел в систему, по крайней мере, в соответствии с выводом docker login но все же я не мог толкнуть изображение. То, что в итоге сработало, было просто сделать:

docker logout

А потом docker login опять же, это было так тривиально. Я не уверен, что случилось, но принудительный повторный вход сработал.

У меня была такая же проблема сегодня. Единственное, что сработало для меня, - это явный вход в "docker.io":

вход в докер docker.io

Я пробовал разные другие имена, и вход в систему мог бы работать, но позже это приводило к ошибке "запрошенный доступ к ресурсу запрещен".

Моя проблема заключалась в простом использовании недопустимых символов (лишних /) в имени моего изображения:

myusername/something/image

неверное имя изображения Попробуйте myusername/ что-то-изображение. Надеюсь, это кому-нибудь поможет.

Docker также имеет ограничение на количество доступных вам частных репозиториев. Если вы создаете частный репозиторий нажатием с вашего локального компьютера, он создаст репозиторий, но больше ничего нельзя будет перенести на него или извлечь из него, и вы получите ошибку "запрошенный доступ к ресурсу запрещен".

Да, возможно, смущает, но внятной документации по этому вопросу вроде бы вообще нет: я только что подписался на Docker Pro с приватными репозиториями . Я создал частный репозиторий, а затем попытался нажать на него. Получил ужасное сообщение "отказано".

Отправка в мои общедоступные репозитории работала нормально, поэтому я знал, что правильно вошел в систему.

Попробовав все, что связано с Docker Hub в предыдущих 30 ответах... Я наконец понял, как работают частные репозитории: они такие же, как общедоступные репозитории, но с дополнительным шагом.


При отправке в репозиторий — ЛЮБОЙ репозиторий в учетной записи Docker Hub — вам необходимо добавить префикс image:tagс вашим именем пользователя, например:

учитывая следующие значения,

имя пользователя = ваше имя пользователя
имя изображения =
тег изображения = тег

1) пометить (или зафиксировать) локальное изображение, добавив префикс с вашим именем пользователя :

      docker tag theimage:thetag yourusername/theimage:thetag

Примечания :

  • если вы работаете в организации , вам нужно добавить двойной префикс к изображению, например:
      docker tag theimage:thetag yourusername/yourorganizationname/theimage:thetag
  • если ваш тегlatest, часть можно опустить; Докер предполагает:latestесли вы не введете:thetagчасть

2) отправьте образ с префиксом в Docker Hub:

       docker push yourusername/theimage:thetag

ИЛИ

       docker push yourusername/yourorganizationname/theimage:thetag

ДОПОЛНИТЕЛЬНЫЙ ШАГ:

Или

перед шагом 1 выше создайте частный репозиторий в своей учетной записи Docker Hub.

Обратите внимание, что имя репозитория должно совпадать с именем, которое вы планируете отправить. Не включайтеthetagчасть имени репозитория. Например, если ваше изображение , вы должны назвать свой репозиторий.

Или

если вы не создали репозиторий заранее (что не обязательно!): зайдите в свой аккаунт в Docker Hub; нажмите на недавно отправленное репо, затем на вкладку «Настройки» и сделайте свое репо приватным.


Я видел других с частными репозиториями, помечающими их двумя префиксами, напримерxyz/abc/theimage:thetag, и я думал, что второй префикс был создан, чтобы пометить репо как приватное. Нет, это только для организаций. Удаление любого второго префикса и установка имени моего репо как простоtheimageисправлена ​​моя ошибка отказа !

Еще одно примечание: каждое репо содержит все помеченные версии изображений с данным именем репо. Так, например,ubuntu:latestиubuntu:14.04, скажем, оба будут вubuntuрепо.

Веселье с Докером!

ОС: Ubuntu16.04

Причина: я удалил файл конфигурации клиента (~ /.docker / config.json)

Решение:

  • Перезапустите докер.
    перезапуск сервисного докера.
  • Необходимо ввести данные для входа в систему, а затем автоматически сгенерировать файл конфигурации.
    вход в докер --username=yourdockerhubername --email=youremail@company.com

То, как docker обрабатывает идентификаторы пользователей и репозитории, может немного сбивать с толку. Допустим, вы создали учетную запись пользователя xyz в Docker Hub. Новая учетная запись автоматически устанавливает пространство имен xyz, Затем вы создаете хранилище под названием myrepo. Имя хранилища будет на самом деле xyz/myrepo,

Чтобы нажать на изображение, вы должны сделать:

docker push docker.io/xyz/myrepo

При необходимости вы можете добавить ": последний" или другой тег.

Если вы получите requested access to the resource is denied сообщение об ошибке:

  1. Перейдите на https://hub.docker.com/ и войдите как xyz.
  2. Нажмите на свой репозиторий xyz/myrepo.
  3. Нажмите на сотрудников.
  4. Добавьте xyz в качестве соавтора.

изменить имя изображения на "имя пользователя"/"имя_изображения"

      docker logout
docker login
(enter username and password)
docker login
 docker tag {imageName} {dockerUserId}/{imageName}
docker push  {dockerUserId}/{imageName}

Если вы столкнулись с этой проблемой при использовании реестра контейнеров Azure, вы можете решить ее, сначала войдя в свой реестр.

docker login yourregistry.azurecr.io

А затем пометьте свое изображение в соответствии с именем хоста вашего реестра.

docker image tag yourimagename:[version] yourregistry.azurecr.io/yourimagename:[version]

И, наконец, подтолкнуть его.

docker push yourregistry.azurecr.io/yourimagename:[version]

Иногда вы можете столкнуться с этой проблемой, когда вы уже вошли в систему с другой учетной записью. В таких случаях вам необходимо:

      docker logout

а потом

      docker login  

Мой ответ связан с похожими проблемами Azure DevOps, которые возникли у меня со следующим распространенным конвейером (он более конкретен, но может помочь кому-то сэкономить время):

  1. Получить источники из GitHub
  2. Построить образ докера
  3. Нажмите на изображение докера в Dockerhub

Ошибка, которую я получил при нажатии denied: requested access to the resource is denied отправил меня сюда.

Пожалуйста, будьте осторожны с переменной $(Build.Repository.Name) включены в ваше имя изображения. По умолчанию это имя репозитория от github, но для того, чтобы ваш пуш работал, оно должно быть dockerhub_account_username/your_dockerhub_repository_name,

замещать $(Build.Repository.Name) с dockerhub_account_username/your_dockerhub_repository_name в поле имени вашего изображения для шагов сборки и push.

Это необходимо для dockerhub api, чтобы знать, куда нажать изображение.

Тем, кто пытается отправить изображение в свой собственный менеджер репозитория Nexus, сделайте следующее:

1) Войдите в свой менеджер репозитория Nexus (порт 8443 связан с определенным репозиторием хоста Docker)

sudo docker login xxx.mydomain.com:8443

2) Пометьте изображение СВОИМ NEXUS SERVER IP / DNS

sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0

3) Нажмите на изображение

sudo docker push xxx.mydomain.com:8443/myimage:1.0.0

Это сработало после того, как я изменил " docker login https://hub.docker.com/ " на " docker login docker.io " и указал имя пользователя и пароль.

Затем выполните следующие команды:

docker tag local-image:tagname new-repo:tagname

docker push new-repo:tagname

ПРИМЕЧАНИЕ: "new-repo" будет содержать "Docker ID + имя репо"

Здесь я создал репозиторий "ubuntu" в Docker Hub перед запуском следующей команды.

Пример:

docker tag alok/ubuntu:latest aloktiwari2007/ubuntu:latest

docker push aloktiwari2007/ubuntu:latest

Простое рабочее решение:

Иди сюда https://hub.docker.com/ например, создать ЧАСТНОЕ хранилище с именем johnsmith/private-repository это NAME/REPOSITORY Вы будете использовать для своего изображения при создании изображения.

  • Первый, docker login

  • Во-вторых, я используюdocker build -t johnsmith/private-repository:01 ."чтобы создать образ, и я использую"docker images"для подтверждения созданного изображения, например, в этом желтом поле ниже: (извините, я не могу вставить формат таблицы, но только текстовую строку)

johnsmith / private-repository (REPOSITORY) 01 (TAD) c5f4a2861d6e (ID ИЗОБРАЖЕНИЯ) 2 дня назад (СОЗДАНО) 305MB(РАЗМЕР)

  • В-третьих, я использую docker push johnsmith/private-repository:01

Готово!

Войти из приложения. Я пытался только из терминала без удачи.

Это версия 17.06.1

После входа в докер, вам нужно назвать ваше изображение с префиксом.

например, если ваше имя пользователя в Docker-Hub Shah, изображение должно быть:

Shah/firstimage

Пришлось пометить его своим именем пользователя, например

      docker login

docker tag imageName username/imageName

docker push username/imageName

Только это сработало для меня!

Для других, у кого аналогичная проблема (но они уже вошли в систему):

просто обязательно переименуйте свой тег:

docker tag whatEverNameForImage:tag YourUserName/whatEverNameForImage:tag

а затем нажмите последнюю версию

      docker push YourUserName/whatEverNameForImage:tag

Имейте файл докера, и требование состоит в том, чтобы создать образ и немедленно отправить его в концентратор Docker.

  1. Войдите в Docker hub
    sudo docker login -u your_username
    Введите пароль

  2. Создайте образ
    sudo docker build -t your_username /demorepo:1.0
    Выше имя образа не упоминается, так как your_username /demorepo — это репозиторий в Docker Hub. Теговое имя 1.0

  3. Нажмите на изображение
    sudo docker push your_username/demorepo:1.0

Чтобы отправить уже существующий образ в концентратор Docker

  1. Войдите в хаб Docker
    sudo docker login -u your_username
    Введите пароль

  2. Пометьте свое изображение (предположим, ваше изображение называется test_docker:1.0)
    sudo docker tag test_docker:1.0 your_username/demorepo:firstpush
    Выше, firstpush — это имя тега, присвоенное вашему изображению, test_docker с тегом 1.0.
    ВАЖНО: (при тегировании имя образа не упоминается)
    Теперь в образах докеров у вас будет 2 изображения, одно говорит test_docker 1.0, а другое ваше_имя_пользователя /demorepo firstpush

  3. Нажмите на изображение
    sudo docker push your_username/demorepo:firstpush

Многие ответы говорили о входе в систему. Конечно, необходим вход в систему, если ошибка все еще не устранена после входа в систему, ищите The push refer to репозиторий. В моем случае он пытался нажать на

[docker.io/библиотека/ <myimage> ]

После того, как я пометил репо с<account_name>/<repo_name>:<tag>это сработало.

      docker tag mynginx_image:latest <myaccount>/mynginx:latest
docker push <myaccount>/mynginx:latest

Затем он изменился на

Пуш ссылается на репозиторий [docker.io/<myaccount>/mynginx]

Это сработало для меня в Windows 10

вход в докер

Другие вопросы по тегам