IT

Docker 권한 없음 : 인증 필요-성공적인 로그인으로 푸시시

lottoking 2020. 9. 7. 08:26
반응형

Docker 권한 없음 : 인증 필요-성공적인 로그인으로 푸시시


내 호스트에서 도커 이미지를 푸시하는 동안 (성공적인 로그인 후) "승인되지 않음 : 발생하지 않는 인증 필요"가 표시됩니다.

아래 세부 정보.

-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
  • Docker 버전 : 1.9.1 (클라이언트 및 서버 모두)
  • http://hub.docker.com 에는 repo도 생성되어 있습니다 (asamba / docker-whale).

/ 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 단계 : Docker 허브에 로그인

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

2 단계 : Docker 허브 리포지토리를 만듭니다 . " mysqlserver : sql " 이라고합시다 .

docker push <user username>/mysqlserver:sql

편집 (2017/08/13)

@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": "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로 인코딩 됨은 "dXNlcm5hbWU6cGFzc3dvcmQ ="입니다.

따라서 파일에는 다음이 포함됩니다.

"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="

비슷하게 도움이되지 않는 오류 메시지와 함께 문제가 발생했지만 Docker-machine 관리 인스턴스에 빌드 한 이미지를 강화하고 발생했습니다.

내가 인스턴스 자체에 로그인 할 때, 한 docker logindocker push모든 벌금을했다.


나는 같은 문제가 있었지만 지정된 URL로 푸시로 수정했습니다. as : 도커 로그인 -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 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

실패


heroku를 사용하는 경우 푸시하기 전에 "heroku container : login"을 잊지 않을지 확인하십시오.


여전히 작동하지 않는 작업 !!!

도커를 만들 때 리포지토리 이름 앞에 사용자 이름을 입력하는 것을 잊었습니다.

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 허브의 리포지토리 이름을 푸시하려는 이미지와 동일한 이름으로 지정하고 dockerhub 사용자 이름을 접두사로 사용하십시오. 예를 들어 사용자 이름이 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'

새 비공개 이미지를 처음으로 푸시하는 경우 구독이이 추가 이미지를 지원하는지 확인하세요.

Docker를 사용하면 5 개의 비용 만 지불하더라도 6 개의 비공개 이미지 이름을 가질 수 있지만 6 번째 이미지는 푸시 할 수 없습니다. 유익한 메시지가 없다는 것은 혼란스럽고 짜증이납니다.


나를 위해 일한 것은 새 저장소를 만들고 이미지 이름을

$ 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 허브의 repos : accountName / resposName 이미지 빌드 이름 "accountName / resposName"-> docker build -t accountName / resposName

그런 다음 docker push accountName / resposName : latest를 입력하십시오.

그게 다야.


비공개 이미지를위한 더 많은 슬롯이 있는지 확인하세요.

제 경우에는 사용자를 조직으로 전환했는데 하나의 무료 개인 이미지가 손실되었으므로 이전에 작동했던 푸시가 더 이상 작동하지 않았습니다.


Docker 저장소 이름이 로컬 Docker 저장소 이름과 일치하는지 확인하십시오. 예를 들어 로컬 리포지토리 이름 "kavashgar / nodjsapp"이라고 말할 수 있습니다.

그러면 도커 허브에 "kavashgar"라는 repo 이름도 있어야합니다.


구성 파일 ~ / .docker / config.json 추가

{
        "auths": {
             "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "my_email@gmail.com"
                }
        }
}

여기서 XXXXX는 https://hub.docker.com 의 사용자 이름 : 암호 (: 포함)의 base64 인코딩입니다 .

제 경우에는 당겨서 같은 오류가 발생했습니다. 문제 (창 아래)는 이중 도커 실행 프로세스에 의해 유발되었으므로 모두 죽이고 하나의 서비스를 다시 시작하면 작동합니다.


이미 좋은 답변이 있지만 하나를 언급하고 싶습니다 . 푸시하기 전에 미리 저장소를 만들 필요가 없습니다.

나에게 문제는 내가 로그인 한 계정의 올바른 사용자 이름을 설정하지 않았다는 것입니다. 그러나 YOURNAME/YOURIMAGE태그를 통해 이미지 앞에 올바른 사용자 이름이 설정되면 (예 :) 미리 새 저장소를 만들지 않고도 푸시 할 수 있습니다.

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

이미지를 푸시하는 동안 여기에 동일한 문제가 있습니다.

unauthorized: authentication required

제가 한:

docker login --username=yourhubusername --email=youremail@company.com

인쇄 :

--email은 더 이상 사용되지 않습니다 (그러나 여전히 로그인 성공)

솔루션 : 최신 로그인 구문을 사용하십시오.

docker login

대화식으로 사용자 이름암호 를 모두 묻습니다 . 그러면 이미지 푸시가 작동합니다.

새 구문을 사용한 ~/.docker/config.json후에도 로그인하면 다음과 같이 보입니다.

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

따라서 자격 증명은 macOS의 키 체인에 있습니다.


sudo docker push / sudo docker pull on ecr repository. aws cli가 내 사용자 (abc)에 설치되고 docker가 root 사용자에 설치 되었기 때문입니다. 내 사용자 (abc)에서 sudo docker push를 실행하려고했습니다.

루트에 aws cli를 설치하고 루트에 aws configure를 사용하여 aws를 구성하고 루트 사용자에서 sudo docker push to ecr을 실행하여이 문제를 해결했습니다.


내 문제는 5 분 후 잘못된 인증 토큰이었습니다. 이미지 크기 때문에 푸시에 5 분 이상 걸렸습니다.

"인증 토큰 기간"을 10 분으로 늘려 문제를 해결했습니다.

여기에 이미지 설명 입력


docker logout먼저 시도한 다음 다시 로그인하십시오.docker login


나는 그것이 오래된 스레드라는 것을 알고 있지만 사용 windows 7 docker toolbox하고 푸시하거나 등록하려는 사람들을 docker hub위해 **Docker Quick Start terminal**실행을 허용 하여이 문제를 해결했습니다 (이 터미널은 연결 가능) 이미지를 푸시 할 때까지 토큰을 유지합니다.


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

참고 URL : https://stackoverflow.com/questions/36663742/docker-unauthorized-authentication-required-upon-push-with-successful-login

반응형