Для Docker push требуется имя пользователя для отправки в концентратор

#python #docker #docker-image

#python #docker #docker-image

Вопрос:

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

 docker build -t registry.heroku.com/myapp/web .
 

Это создает образ в моем docker hub.
Я удостоверяюсь, что я вошел в свой docker, а также удостоверяюсь, что у меня есть контейнер heroku, созданный и вошедший в систему.

 heroku login
heroku container: login
 

Затем, когда я пытаюсь выполнить docker push:

 docker push myname/registry.heroku.com/myapp/web
 

затем я получаю сообщение об ошибке: An image does not exist locally with the tag: myname/registry.heroku.com/myapp/web

Когда я это делаю docker images , появляется созданный мной образ registry.heroku.com/myapp/web

Кто-нибудь знает, что я делаю не так?

Комментарии:

1. Если вам разрешено нажать на registry.heroku.com (это docker login удалось), то вы docker push registry.heroku.com/myapp/web , с тем же именем, с которым вы пометили изображение; нет необходимости дублировать ваше имя пользователя в начале его.

2. «Я знаю, что для решения этой проблемы я должен добавить свое имя пользователя перед нажатием docker». — это, похоже, противоречит сообщению об ошибке, которое вы получаете. Я бы поставил это под сомнение.

Ответ №1:

Вы построили registry.heroku.com/myapp/web изображение и пытается нажать myname/registry.heroku.com/myapp/web, которого определенно не существует.

  • Вам нужно отправить изображение с тем же именем, которое вы создали.
  • Heroku не принимает изображения с myname/registry.heroku.com/myapp/web. Это должно быть registry.heroku.com/myapp/web
  • Так что попробуйте нажать на изображение (оно правильное).
     docker push registry.heroku.com/myapp/web
     
  • myname/registry.heroku.com/myapp/web (неверно)
    • войдите в heroku cli
       heroku container:login
       
    • войдите в реестр Heroku с помощью docker и токена аутентификации Heroku
       docker login --username=_ --password=$(heroku auth:token) registry.heroku.com
       
    • нажмите на изображение
       docker push registry.heroku.com/myapp/web
       

Следуйте этому документу Heroku о передаче изображений

Комментарии:

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

2. @Kitchen Если вы еще не установили интерфейс командной строки Heroku, пожалуйста, установите и выполните следующие команды. Войдите в Heroku heroku container:login . Войдите в реестр контейнеров Heroku с помощью docker и токена аутентификации Heroku docker login --username=_ --password=$(heroku auth:token) registry.heroku.com . Нажмите изображение docker push registry.heroku.com/myapp/web