Подтвердить что ты не робот

Докер несанкционирован: требуется аутентификация - при нажатии с успешным логином

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

Подробности ниже.

-bash-4.2# docker login --username=asamba [email protected]
WARNING: login credentials saved in /root/.docker/config.json
*Login Succeeded*
-bash-4.2#
-bash-4.2# docker push asamba/docker-whale

Do you really want to push to public registry? [y/n]: y
The push refers to a repository [docker.io/asamba/docker-whale] (len: 0)
faa2fa357a0e: Preparing
unauthorized: authentication required
  • Версия Docker: 1.9.1 (как клиент, так и сервер)
  • http://hub.docker.com также создано репо (асамба/докер-кит).

/var/log/messages показывает 403, я не знаю, является ли этот докер. См. Ниже.

Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884872524Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}"
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884988574Z" level=error msg="Handler for POST /v1.21/images/asamba/docker-whale/push returned error: Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced"
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.885013241Z" level=error msg="HTTP Error" err="Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced" statusCode=403
Apr 16 11:39:05 localhost journal: time="2016-04-16T11:39:05.420188969Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}"
Apr 16 11:39:06 localhost kernel: XFS (dm-4): Mounting V4 Filesystem
Apr 16 11:39:06 localhost kernel: XFS (dm-4): Ending clean mount
Apr 16 11:39:07 localhost kernel: XFS (dm-4): Unmounting Filesystem

Любая помощь приветствуется, пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Я сделал то же самое с -f. Не повезло!

4b9b3361

Ответ 1

OK! неважно; Я нашел решение. с 403 Предполагается, что HTTP не подходит к правильному URL.

Измените файл с учетными данными, хранящимися ~/.docker/config.json по умолчанию, созданному по умолчанию

{
        "auths": {
                "docker.io": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "[email protected]"
                }
        }
}

to - Обратите внимание на изменение с docker.io → index.docker.io/v1. Это изменение.

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "[email protected]"
                }
        }
}

Надеюсь, что это поможет.

Обратите внимание, что поле auth должно быть "username: password" base64 закодировано. например: "username: password" base64 encoded - "dXNlcm5hbWU6cGFzc3dvcmQ ="

поэтому ваш файл будет содержать:

"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="

Ответ 2

У меня тоже была такая же проблема. Вот как я ее решаю.

Шаг 1: войдите в Docker Hub

docker login --username=<user username> --email=<user email address>

Шаг 2: создайте репозиторий в центре докера. скажем " mysqlserver: sql ".

docker push <user username>/mysqlserver:sql

Edit (13/08/2017)

Основываясь на комментарии @KaraPirinc, в Docker версии 17 для входа в систему (Шаг 1),

docker login -u username -p password

Ответ 3

Решение, которое вы разместили, не работает для меня...

Это то, что работает для меня:

  • Создайте репозиторий с нужным именем.

  • При фиксации изображения назовите изображение, подобное репозиторию, включая имя пользователя <dockerusername>/desired-name. Например, radu/desired-name.

Ответ 4

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

Когда я вошел в сам экземпляр, docker login и docker push все работало нормально.

Ответ 5

У меня была такая же проблема, но я исправил ее с помощью push с указанным URL. как: вход в docker -u https://index.docker.io/v1/

консольный вывод:

The push refers to a repository [docker.io/<username>/richcity]
adc9144127c1: Preparing 
4db5654f7a64: Preparing 
ce71ae73bc60: Preparing 
e8e980243ee4: Preparing 
d773e991f7d2: Preparing 
bae23f4bbe95: Waiting 
5f70bf18a086: Waiting 
3d3e4e34386e: Waiting 
e72d5d9d5d30: Waiting 
8d1d75696199: Waiting 
bdf5b19f60a4: Waiting 
c8bd8922fbb7: Waiting 
unauthorized: authentication required

1010deiMac:dockerspace whoami$ docker login -u <username> https://index.docker.io/v1/
Password: 
Login Succeeded
1010deiMac:dockerspace whoami$ docker push <username>/richcity 
The push refers to a repository [docker.io/<username>/richcity]
adc9144127c1: Pushed 
4db5654f7a64: Pushed 
ce71ae73bc60: Pushed 
e8e980243ee4: Pushed 
d773e991f7d2: Pushed 
bae23f4bbe95: Pushed 
5f70bf18a086: Pushed 
3d3e4e34386e: Pushing [=============>                                     ] 45.07 MB/165.4 MB
e72d5d9d5d30: Pushed 
8d1d75696199: Pushing [>                                                  ] 1.641 MB/118.1 MB
bdf5b19f60a4: Pushing [============>                                      ]   142 MB/568.4 MB
c8bd8922fbb7: Pushing [========================>                          ] 59.44 MB/121.8 MB

Ответ 6

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

Итак:

docker login -u xxx -p yyy sampledockerregistry.com/myapp 
docker push sampledockerregistry.com/myapp

Работы

тогда

docker login sampledockerregistry.com 
username : xxx
password : yyy
Login Succeeded

docker push sampledockerregistry.com/myapp

Не удается

Ответ 7

если вы используете heroku, убедитесь, что вы не забыли "heroku container: login" перед нажатием.

Ответ 8

Даже я вошел в систему и проверил всю конфигурацию, она все еще не работает!!!

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

docker build docker-meteor-build 

(успешно завершена)

И затем, когда я нажал на свой репозиторий, я использовал

docker push myname/docker-meteor-build 

Он покажет unauthorized authentication required

Итак, решение - это имя сборки, и push должен быть точно таким же

docker build myname/docker-meteor-build 
docker push myname/docker-meteor-build 

Ответ 9

Проблема newbies заключается в том, что мы склонны относиться к репозиторию докер-хаба, как к репозиторию maven, и считаем, что он может содержать много разных файлов, папок и другого содержимого.

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

Итак, назовите ваш репозиторий на концентраторе докеров так же, как и изображение, которое вы хотите вставить в него, и используйте свое имя пользователя dockerhub в качестве префикса. Например, если ваше имя пользователя - это myusername, а ваше имя изображения - докер-кит, обязательно укажите репозиторий dockerhub как докер-кит и используйте приведенные ниже команды, чтобы пометить и переместить изображение в репозиторий:

docker logout                                   # to make sure you're logged out and not cause any clashes
docker tag <imageId> myusername/docker-whale    # use :1.0.0 for specific version, default is 'latest'
docker login --username=myusername              # use the username/pwd to login to docker hub
docker push myusername/docker-whale             # use :1.0.0 for pushing specific version, default is 'latest'

Ответ 10

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

Docker позволяет вам иметь 6 личных изображений, даже если вы платите только за 5, но не для того, чтобы нажать 6-й снимок. Отсутствие информационного сообщения сбивает с толку и раздражает.

Ответ 11

Что сработало для меня было создание нового репозитория и переименование образа с помощью

$ docker tag image_id myname/server:latest

Ответ 12

Здесь решение для моего дела (частные репозитории, бесплатный план аккаунта)

https://success.docker.com/Datacenter/Solve/Getting_%22unauthorized%3A_authentication_required%22_when_trying_to_push_image_to_DTR

Имя сборки изображения для push должно иметь одно и то же имя репозиториев.

Пример: РЕПО на докер-хабе: accountName/resposName image build name "accountName/resposName" → docker build -t accountName/resposName

затем введите docker push accountName/resposName: last

Что все.

Ответ 13

Убедитесь, что у вас больше слотов для личных изображений.

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

Ответ 14

Удостоверьтесь, что ваше имя репозитория вашей док-станции соответствует вашему локальному имени репликации докеров. например, скажем, если вы используете локальное имя репо "kavashgar/nodjsapp"

тогда у вас также должны быть имена репо "kavashgar" в концентраторе докеров

Ответ 15

в файле конфигурации ~/.docker/config.json add

{
        "auths": {
             "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "[email protected]"
                }
        }
}

где XXXXX - это кодировка base64 вашего имени пользователя: пароль (включен: включен) https://hub.docker.com

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

Ответ 16

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

Проблема для меня заключалась в том, что я не установил правильное имя пользователя учетной записи, в которую я входил. Но как только правильное имя пользователя задается перед изображением (например, YOURNAME/YOURIMAGE) через его тег, вы можете нажать его, не создавая новый репозиторий заранее.

sudo docker tag IMAGE:VERSION USERNAME/IMAGE:VERSION
sudo docker push USERNAME/IMAGE:VERSION

Ответ 17

Такая же проблема при нажатии на изображение:

unauthorized: authentication required

Что я сделал:

docker login --username=yourhubusername [email protected]

Что он напечатал:

- адрес электронной почты устарел (но логин еще не завершен)

Решение: используйте последний синтаксис входа.

docker login

Он будет запрашивать как имя пользователя, так и пароль в интерактивном режиме. Тогда нажатие на изображение просто работает.

Даже после использования нового синтаксиса мой ~/.docker/config.json выглядит так после входа в систему:

{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "credsStore": "osxkeychain"
}

Таким образом, учетные данные находятся в цепочке ключей macOS.

Ответ 18

Не указывайте свой пароль в текстовом виде.

Вы можете войти с помощью:

docker login --username=<username>

Затем он должен запросить пароль (безопаснее).

Спасибо!

Ответ 19

Я получил аналогичную ошибку для sudo docker push/sudo docker pull on ecr repository. Это потому, что aws cli установлен в моем пользователе (abc) и докере, установленном в root user.I попытался запустить sudo docker push на моем пользователе (ABC)

Исправлено это с помощью установленного aws cli в корневом каталоге, настроенного aws с использованием aws configure в корневом каталоге и запуска sudo docker push to ecr для пользователя root

Ответ 20

Моя проблема была неверным токеном авторизации через 5 минут. Толчок занял более 5 минут из-за размера изображения.

Я исправил это, увеличив "Длительность токена авторизации" до 10 минут.

enter image description here

Ответ 21

Попробуйте docker logout из docker login docker logout, а затем войти снова с docker login

Ответ 22

Если вы работаете windows 7 docker Registry

  1. Запустите **Docker Quick Start terminal** run (этот терминал разрешает соединение) Пока вы не нажмете изображения, токен останется живым.
  2. Авторизоваться docker login
  3. Убедитесь, что вы пометили изображение с именем пользователя

    docker build -f Dockerfile -t 'username'/imagename

  4. нажать изображение

    docker image push username/imagename

Примечание: имя изображения в нижнем регистре

Ответ 23

Вы можете скачать файл xxx/.docker/config.json где-нибудь для его обработки. Затем попробуйте снова войти в систему для создания нового файла config.json.

#mv xx/.docker/config.json xx/.docker/config_old.json
#docker login https://index.docker.io/v1/
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: YOUR USERNAME
Password: YOUR PASSWORD
WARNING! Your password will be stored unencrypted in /xxx/.docker/config.json.
Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded