Отказано: запрошенный доступ к ресурсу запрещен: 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
Просто посмотри :
вместо /
это был трюк. Меня устраивает. Я не знаю, позволяет ли это вам /
а вместо :
но это может быть для какой-то другой цели.
Также важно отметить, что когда вы помечаете свое изображение, вы помечаете его, используя Пространство имен, а затем свой репозиторий / mydevrepo. Это смутило меня, когда я следовал за Докером. После этого я использовал:
docker login
А потом я нажал на свое изображение, используя "помеченное имя".
docker push {namespace}/mydevrepo
Не уверен, что случилось с док-хабом, но ни одно из опубликованных решений не помогло мне. Вот обходной путь, который закончил работать для меня с января 2018 года:
- Перейдите на hub.docker.com и измените свой репозиторий на частный
- В вашей оболочке сделайте:
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
- Вернитесь в 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
сообщение об ошибке:
- Перейдите на https://hub.docker.com/ и войдите как xyz.
- Нажмите на свой репозиторий xyz/myrepo.
- Нажмите на сотрудников.
- Добавьте 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, которые возникли у меня со следующим распространенным конвейером (он более конкретен, но может помочь кому-то сэкономить время):
- Получить источники из GitHub
- Построить образ докера
- Нажмите на изображение докера в 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
Готово!
После входа в докер, вам нужно назвать ваше изображение с префиксом.
например, если ваше имя пользователя в 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.
Войдите в Docker hub
sudo docker login -u your_username
Введите парольСоздайте образ
sudo docker build -t your_username /demorepo:1.0
Выше имя образа не упоминается, так как your_username /demorepo — это репозиторий в Docker Hub. Теговое имя 1.0Нажмите на изображение
sudo docker push your_username/demorepo:1.0
Чтобы отправить уже существующий образ в концентратор Docker
Войдите в хаб Docker
sudo docker login -u your_username
Введите парольПометьте свое изображение (предположим, ваше изображение называется 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Нажмите на изображение
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]