[docker] 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로도 푸시했다. 불운!



답변

편집 (13/08/2017)

@KaraPirinc의 의견에 따라 도커 버전 17에서 로그인하려면 (1 단계),

docker login -u username -p password

나도 같은 문제가 있었는데 이것이 내가 해결하는 방법입니다.

1 단계 : Docker 허브에 로그인

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

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

docker push <user username>/mysqlserver:sql


답변

게시 한 솔루션이 작동하지 않습니다 …

이것이 나를 위해 작동하는 것입니다.

  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="


답변

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


답변

비슷하게 도움이되지 않는 오류 메시지와 함께 비슷한 문제가 발생했지만 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

실패