도커 미승인: 인증 필요 - 성공적인 로그인과 함께 푸시 시
로그인에 성공한 후 호스트에서 도커 이미지를 푸시하는 동안 "unauthorized: authentication required" 메시지가 표시됩니다.
아래 세부 정보.
-bash-4.2# docker login --username=asamba --email=anand.sambamoorthy@gmail.com
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
/var/log/메시지에 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단계: 도커 허브에 로그인합니다.
@KaraPirinc의 코멘트에 기초하여 Docker 버전 17에서 로그인하기 위해:
docker login -u username --password-stdin
그런 다음 메시지가 나타나면 암호를 입력합니다.
2단계: 도커 허브에 리포지토리를 만듭니다.
"mysqlserver:sql"을 예로 들어 보겠습니다.
docker push <user username>/mysqlserver:sql
좋아요! 괜찮습니다. 해결책을 찾았습니다.403 HTTP가 올바른 URL로 가지 않는 것으로 의심됩니다.
증명이 합니다.~/.docker/config.json
된 " 에서기값본된성생"
{
"auths": {
"docker.io": {
"auth": "XXXXXXXXXXXXX",
"email": "x.y@gmail.com"
}
}
}
to - docker.io -> index.docker.io/v1 에서 변경된 내용을 확인합니다.그것이 변화입니다.
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "XXXXXXXXXXXXX",
"email": "x.y@gmail.com"
}
}
}
도움이 되길 바랍니다.
인증 필드는 'username:password' base64로 인코딩되어야 합니다.예: "username:password" base64 인코딩은 "dXNlcm5hb"입니다.WU6cGFzc3dvcmQ="
파일에 다음 내용이 포함됩니다.
"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="
당신이 올린 해결책은 나에게 효과가 없습니다...
이것이 제게 맞는 일입니다.
원하는 이름으로 리포지토리를 만듭니다.
때 " 이지를커때밋사용이자포름을이함여하미다이저지같니정합장이와소름을의지미할▁when▁username,▁like▁the▁theitory,▁name"를 포함하여 이미지의 이름을 와 같이 지정합니다.
<dockerusername>/desired-name
를 들어, .를들면예,radu/desired-name
.
초보자들이 직면한 문제는 도커 허브 저장소를 마치 메이븐 저장소처럼 취급하는 경향이 있으며 이 저장소에 다양한 파일, 폴더 및 기타 콘텐츠가 포함되어 있을 수 있다고 생각한다는 것입니다.
반면에 도커 리포지토리는 하나의 이미지일 뿐 다른 것을 포함하지 않습니다.동일한 이미지의 다른 버전을 저장할 수 있지만 하나의 이미지만 포함됩니다.
따라서 도커 허브에 있는 리포지토리의 이름을 밀어넣으려는 이미지와 동일한 이름으로 지정하고 도커 허브 사용자 이름을 접두사로 사용합니다.예를 들어 사용자 이름이 myusername이고 이미지 이름이 docker-whale이면 dockerhub 저장소 이름을 docker-whale로 지정하고 아래 명령을 사용하여 이미지에 태그를 지정하고 저장소에 이미지를 푸시합니다.
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'
헤로쿠를 사용하는 경우, 누르기 전에 "헤로쿠 컨테이너:filename"을 잊지 않도록 하십시오.
저도 같은 문제가 있었지만 지정된 url.as:docker login -u https://index.docker.io/v1/ 로 push로 해결했습니다.
콘솔 출력:
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 login
그리고.docker push
모든 것이 잘 작동했습니다.
누군가에게 도움이 될 경우 프롬프트에서 다음 명령을 사용하여 이 문제를 해결할 수 있었습니다.
az acr login -n MyContainerName
이 후에, 나는 도망갈 수 있었습니다.docker push
표준 프로세스는 로그인한 다음 도커 레지스트리에 푸시하는 것이지만, 이 특정 문제를 해결하기 위한 트릭은 사용자 이름과 암호를 동일한 줄로 제공하여 로그인하는 것입니다.
그래서:
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
여기 내 경우를 위한 솔루션(개인 저장소, 무료 계정 계획)
푸시할 이미지 빌드 이름은 저장소의 이름이 같아야 합니다.
예: 도커 허브의 리포지토리는 다음과 같습니다. accountName/resposName 이미지 빌드 이름 "accountName/resposName" -> 도커 빌드 -t accountName/resposName
그런 다음 docker push accountName/resposName:latest를 입력합니다.
이상입니다.
제 문제는 5분 후에 유효하지 않은 인증 토큰이었습니다.이미지 크기 때문에 푸시하는 데 5분 이상이 걸렸습니다.
인증 토큰 기간을 10분으로 늘려 수정했습니다.
새 개인 이미지를 처음 푸시하는 경우 헤드라인 등록에서 이 추가 이미지를 지원하는지 확인하십시오.
도커를 사용하면 5개만 지불하더라도 6개의 개인 이미지에 이름을 붙일 수 있지만 6번째 이미지는 푸시할 수 없습니다.유익한 메시지의 부족은 혼란스럽고 짜증납니다.
새 리포지토리를 만들고 이미지 이름을 변경하는 것이 효과적이었습니다.
$ docker tag image_id myname/server:latest
개인 이미지용 슬롯이 더 있는지 확인합니다.
저의 경우 사용자를 조직으로 변환했는데 하나의 무료 개인 이미지가 사라졌기 때문에 이전의 푸시는 더 이상 작동하지 않았습니다.
이미지를 푸시하는 동안에도 동일한 문제가 발생합니다.
unauthorized: authentication required
내가 한 일:
docker login --username=yourhubusername --email=youremail@company.com
인쇄된 내용:
--이메일은 더 이상 사용되지 않습니다(그러나 로그인은 성공했습니다).
솔루션: 최신 로그인 구문을 사용합니다.
docker login
대화형으로 사용자 이름과 암호를 모두 요청합니다.그러면 이미지 푸시가 작동합니다.
새운구사문후에도용한나의, 로을▁even의나▁my,,▁the▁after~/.docker/config.json
로그인한 후 다음과 같이 표시됩니다.
{
"auths": {
"https://index.docker.io/v1/": {}
},
"credsStore": "osxkeychain"
}
따라서 자격 증명은 macOS의 키 체인에 있습니다.
ㅠㅠdocker logout
먼저, 다음으로 다시 로그인합니다.docker login
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
저도 비슷한 문제가 있었습니다.
Error response from daemon: Get https://registry-1.docker.io/v2/hadolint/hadolint/manifests/latest: unauthorized: incorrect username or password
는 제가 으로 을 해도 을 알게 되었습니다.docker login
명령입니다. 풀에 실패했습니다.나는 청소를 하려고 노력했습니다.~/.docker/config.json
개선된 것은 아무것도 없습니다.
증명이 된 것이 구성파보자증저명것아이라니장된이니을일에 되어 있었습니다."credsStore": "secretservice"
은 리스에우발생다니합연히것이입니다.seahorse
또는Passwords and Keys
도구. 거기서 확인하고 모든 도커 허브 로그인을 정리했습니다.이후 새 도커 로그인이 예상대로 작동했습니다.
프록시의 문제입니다.
작업 중인 경우 VPN을 끕니다.
https://forums.docker.com/t/failed-with-status-401-unauthorized/11023/3
구성 파일에서 ~/.vmdker/config.json add
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "XXXXXXXXXXXXX",
"email": "my_email@gmail.com"
}
}
}
여기서 XXXXX는 https://hub.docker.com 의 사용자 이름:password( :가 포함됨)의 base64 인코딩입니다.
저의 경우 당김과 같은 오류가 있었습니다.(창 아래) 문제는 이중 도커 실행 프로세스에 의해 야기되었으므로, 그들을 모두 죽이고 하나의 서비스를 다시 시작하면 작동합니다.
ECR 저장소에서 sudo docker push/sudo docker pull에 대해 유사한 오류를 받았습니다.내 사용자(abc)에 aws cli가 설치되어 있고 root 사용자에 도커가 설치되어 있기 때문입니다.사용자에게 sudo docker push를 실행하려고 했습니다(abc).
루트에 설치된 aws cli, 루트에 구성된 aws를 사용하여 aws를 구성하고 루트 사용자에게 sudo docker push를 실행하여 이 문제를 해결했습니다.
을 하는 경우windows 7 docker Registry
- 시작
**Docker Quick Start terminal**
실행(이 터미널은 연결을 활성화합니다) 이미지를 누를 때까지 토큰을 활성화합니다. - 로그 인.
docker login
이미지에 사용자 이름을 태그해야 합니다.
docker build -f Dockerfile -t 'username'/imagename
푸시 이미지
docker image push username/imagename
참고: 이미지 이름 모두 소문자
나는 온라인에서 찾을 수 있는 모든 방법을 시도했지만 실패했습니다.그리고 나서 저는 이 게시물을 읽고 @Alex 답변에서 아이디어를 얻습니다.그런 다음 저는 제 config.json에서 사용되는 "credsStore": "osxkeychain"에 대해 검색합니다.I follow this link https://docs.docker.com/engine/reference/commandline/login/ 를 통해 로그아웃한 번 더 로그인합니다.마침내, 저는 제 이미지를 성공적으로 밀어낼 수 있습니다.
저도 같은 문제가 있었는데 고칠 수 있어요. 바꿔주세요.~/.docker/config.json
아래와 같이 철하다
{
"auths": {
"XxX": {
"auth": "XxX"
}
}
}
도커 서비스를 다시 시작하는 것을 잊지 마십시오.
service docker restart
즐거운 시간 되세요.
저는 헤로쿠와 도커와 같은 문제에 직면하고 있었습니다, 해결책은 다음과 같았습니다.
docker login
docker build . -t <project_name>
heroku container:login
heroku container:push web -a <project_name>
저도 같은 문제가 있었지만 지정된 URL로 푸시하여 해결했습니다.
docker login -u https://index.docker.io/v1/
이 문제의 원인이 무엇인지 궁금할 뿐입니다.
이전 게시물이지만 동일한 문제가 있어 답을 찾을 수 없습니다.
참고: Docker 태그는 Azure 로그인 서버 이름에 대소문자를 구분합니다.
나는 Azure 컨테이너에 업로드하고 있었습니다.컨테이너 이름이 "LearnContainer81"이고 로그인 서버 이름이 "learncontainer81.azurecr.io "입니다.
도커에서 태그를 했을 때, "LearnContainer81.azurecr.io/X "으로 태그를 했는데 승인되지 않았습니다.Azure에 대한 로그인 서버에 따라 다시 소문자로 태그를 지정했습니다.그러면 업로드가 잘 되었습니다.
저는 자체 호스팅 도커 레지스트리를 사용하고 있습니다. 여기서 HTTPS/SSL을 다른 서버(예: nginx 또는 트래픽 서버)에서 먼저 종료한 다음 암호화되지 않은 HTTP를 통해 트래픽을 레지스트리로 전달합니다.많은 연구 끝에, 저는 그것을 작동시킬 수 있었습니다.
이 문제는 PATCH - 요청에 X-Forwarded-Proto-header가 설정되어 있지 않아 401 오류가 발생했기 때문에 발생합니다.https://github.com/distribution/distribution/issues/1177#issuecomment-155718420 을 참조하십시오.
ii) nginx 버전 18(및 Ubuntu Bionic 및 Focial과 같은 하위 버전)은 다음을 통과하지 못하는 것 같습니다.
proxy_set_header X-Forwarded-Proto https;
PATCH의 경우(POST는 정상적으로 작동하지만 nginx 버전 21은 정상적으로 작동합니다.
또한 Apache Traffic 서버가 활성화되면 헤더를 올바르게 전달하는 것 같습니다.
시스템의 날짜/시간/시간대가 올바르게 설정되지 않은 경우에도 이 오류가 발생하는 것 같습니다.수정하려면 시스템 시간 설정이 올바른지 확인합니다.
언급URL : https://stackoverflow.com/questions/36663742/docker-unauthorized-authentication-required-upon-push-with-successful-login
'programing' 카테고리의 다른 글
Android 에뮬레이터가 키보드 입력을 받지 않음 - SDK 도구 Rev 20 (0) | 2023.08.10 |
---|---|
Visual Studio Code - URI의 대상 'package:flutter/material.dart'가 없습니다. (0) | 2023.08.10 |
반복실험 없이 난수 시퀀스 만들기 (0) | 2023.08.10 |
요소에 동일한 폭을 제공하지 않는 Flexbox (0) | 2023.08.10 |
MariaDB를 시작하고 센토스 기반 도커 이미지를 계속 실행하는 방법. (0) | 2023.08.10 |