Докер несанкционирован: требуется аутентификация - при нажатии с успешным логином
При нажатии на изображение докера (после успешного входа) с моего хоста я получаю "неавторизованный: требуется проверка подлинности".
Подробности ниже.
-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. Не повезло!
Ответы
Ответ 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
- Запустите
**Docker Quick Start terminal**
run (этот терминал разрешает соединение) Пока вы не нажмете изображения, токен останется живым.
- Авторизоваться
docker login
Убедитесь, что вы пометили изображение с именем пользователя
docker build -f Dockerfile -t 'username'/imagename
нажать изображение
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