docker unauthorized: требуется аутентификация - при нажатии с успешным входом в систему



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



детали ниже.



-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



  • Докер версия: 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, а также. Не повезло!

1633   17  

17 ответов:

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

Шаг 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

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

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

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

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

ОК! ничего, я нашел решение. с 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 is " dXNlcm5hbWU6cGFzc3dvcmQ="

так что ваш файл будет содержать:

"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="

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

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

У меня была та же проблема, но я исправил ее с помощью push с указанным url. как: docker login-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

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

Так :

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

Не

даже я вошел в систему и проверил все настройки, все равно ничего не получится !!!

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

docker build docker-meteor-build 

(успешно строить)

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

docker push myname/docker-meteor-build 

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

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

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

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

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

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

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

Итак, назовите свой репозиторий на Docker hub тем же именем, что и изображение, которое вы хотите нажать в него и используйте свое имя пользователя dockerhub в качестве префикса. Например, если ваше имя пользователя имя_пользователя и Ваше имя изображение докер-кит, обязательно назовите свой репозиторий 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'

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

$ docker tag image_id myname/server:latest

вот решение для моего случая (частные РЕПО, бесплатный план счета)

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

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

пример: репозитории на Docker hub: accountName/resposName имя сборки образа "accountName / resposName" -> docker build-t accountName / resposName

введите docker push accountName / resposName: latest

вот и все.

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

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

убедитесь, что имя репозитория docker совпадает с именем локального репозитория docker. например, скажем, если вы локальное имя РЕПО "kavashgar / nodjsapp"

тогда у вас также должно быть имя РЕПО "кавашгар" в Docker hub

в конфигурационный файл ~/.настройки/конфигурации.JSON и добавить

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

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

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

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

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

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

та же проблема здесь, во время нажатия изображения:

unauthorized: authentication required

что я сделал:

docker login --username=yourhubusername [email protected]

, который она напечатала:

--электронная почта является устаревшим (но войти удалось до сих пор)

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

docker login

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

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

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

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

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

исправил это путем установки командной строки AWS в корень , настроить АРМ с помощью AWS настроить в корень и запустите sudo настройки Нажимаем на ККМ на корню

Comments

    Ничего не найдено.