programing

거부됨: 요청된 리소스 액세스가 거부됨: 도커

cafebook 2023. 8. 6. 10:21
반응형

거부됨: 요청된 리소스 액세스가 거부됨: 도커

는 이 링크를 따라 첫 번째 도커 이미지를 생성하고 성공적으로 진행되었으며 이제 이 링크에서 이 이미지를 도커 저장소로 밀어넣으려고 합니다.그러나 이 이미지를 리포지토리에 밀어넣으려고 할 때마다 이런 유형의 오류가 발생합니다.

denied: requested access to the resource is denied

참고: 도커에 성공적으로 로그인했습니다.

도커를 누르기 전에 도커 보고서를 비공개로 전환해야 할 수도 있습니다.

Dean Wu제공한 답변과 ses의 이 의견 덕분에, 푸시하기 전에 로그아웃하는 것을 기억하고, 명령줄에서 도커 허브 계정으로 로그인하십시오.

# you may need log out first `docker logout` ref. https://stackoverflow.com/a/53835882/248616
docker login

문서에 따르면:

You need to include the namespace for Docker Hub to associate it with your account.
The namespace is the same as your Docker Hub account name.
You need to rename the image to YOUR_DOCKERHUB_NAME/docker-whale.

따라서 다음을 누르기 전에 이미지에 태그를 지정해야 합니다.

docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage

그러면 당신은 그것을 밀 수 있을 것입니다.

docker push YOUR_DOCKERHUB_NAME/firstimage

저도 같은 문제가 있었지만, 여기서 수락된 답변은 저에게 효과가 없었습니다.저는 몇 걸음 걸었고 마침내 그것을 밀 수 있었습니다.

다음은 제가 수행한 단계입니다.

  1. 도커에 로그인합니다.

    docker login -u darlin

  2. 이미지 빌드 태그 지정

여기 내 이미지 이름은 로컬 이미지이며 기본적으로 최신 태그가 있습니다.
그리고 제 사용자 이름은 도커 클라우드에 등록된 darlin이고 도커 허브라는 공공 저장소를 만들었습니다.

그래서 나의 개인 저장소는 이제 darlin/dockerhub가 되고 나는 태그로 내 이미지를 푸시하고 싶습니다.myfirstimagepush.

아래와 같이 태그했습니다.

docker tag mylocalimage:latest darlin/dockerhub:myfirstimagepush
  1. 아래와 같이 이미지를 개인 도커 리포지토리에 푸시했습니다.

    docker push darlin/dockerhub:myfirstimagepush

그리고 그것은 성공적으로 제 개인 도커 레포로 밀려났습니다.

도커 초급 과정을 수강하다가 같은 문제가 생겼습니다.저는 이 문제를 해결했습니다.docker login도커 푸시 콜 전에.

아래 명령 사용:

$ docker login
<enter user name and password for Docker Hub Repository>

$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image

$ docker push {docker-hub-username}/{default-repo-folder-name}:first-image

예를 들어 Manjeet86/docker-repos와 같은 공용 저장소가 있으므로 명령은 다음과 같습니다.

$ docker tag first-image manjeet86/docker-repo:first-image

$ docker push manjeet86/docker-repo:first-image

보기만 해도 돼요:/그게 비결이었습니다.저한테는 효과가 있어요.당신이 그것으로 태그할 수 있는지 모르겠습니다./을대하여신 .:하지만 그건 다른 목적일 수도 있어요

https://docs.docker.com/engine/reference/commandline/tag/ #http://examples

또한 중요한 점은 이미지에 태그를 지정할 때 네임스페이스를 사용한 다음 리포지토리 /mydevrepo를 사용하여 태그를 지정한다는 것입니다.이것은 도커 문서를 따를 때 저를 혼란스럽게 했습니다.그 후 다음을 사용했습니다.

docker login

그런 다음 '태그가 붙은 이름'을 사용하여 이미지를 밀어 넣었습니다.

docker push {namespace}/mydevrepo

다음은 2018년 1월 기준 해결 방법입니다.

  1. 에 가다hub.docker.com 저장소로 합니다.

  2. 셸에서 실행:

    docker images

    REPOSITORY TAG IMAGE ID CREATED SIZE verse_gapminder_gsl latest 023ab91c6291 3 minutes ago 1.975 GB verse_gapminder latest bb38976d03cf 13 minutes ago 1.955 GB rocker/verse latest 0168d115f220 3 days ago 1.954 GB

    docker tag bb38976d03cf dockhubusername/verse_gapminder:mytag

    docker login docker.io

    docker push dockhubusername/verse_gapminder:mytag

  3. 도커 허브로 돌아가서 리포지토리를 다시 공용으로 변경합니다.

이미지 태그를 지정할 때 도커 허브 이름을 사용했을 때 효과가 있었습니다.(여기서 xyz는 도커 허브 이름입니다.)

# Login to docker hub account 
docker login 

# tag image 
docker tag nginx xyz/nginx

# push image
docker push xyz/nginx

이 , 에 있는 을 테스트했지만,. 저도 에 따르면,는 제대로 로그인했습니다. 저는 여기에 있는 솔루션을 테스트했지만, 소용이 없었습니다. 적어도 출력에 따르면, 저는 제대로 로그인했습니다.docker login하지만 여전히 이미지를 누를 수 없었습니다.결국 효과가 있었던 것은 다음과 같습니다.

docker logout

그리고 나서.docker login다시 말하지만, 그것은 아주 사소한 것이었습니다.무슨 일이 있었는지는 모르겠지만 재로그인을 강요하는 것이 효과가 있었습니다.

저는 같은 문제에 직면하고 있었습니다. 저는 제 이미지 이름을 다음과 같이 지정했습니다.something/image-name하지만 대신에 저는 시도했습니다.<docker-hub-username>/image-name그리고 그것은 매력적으로 작용했습니다.

1단계

docker login --username=jp9573

2단계

docker push jp9573/todo

아까 내가 주던jaypatel/todo저는 방금 그것을 그것으로 바꿨습니다.username/imageㅠㅠ. 를 붙이거나 이렇게 하면 이미지나 다른 태그를 달 필요가 없습니다.저는 그것이 신인에게 좋은 방법이라고 생각합니다.

오늘도 같은 문제가 있었습니다.제게 유일하게 효과가 있었던 것은 "docker.io "에 명시적으로 로그인하는 것이었습니다.

docker login docker.io

다른 여러 이름을 시도했는데 로그인이 작동하는 것처럼 보이지만 나중에 다음과 같은 오류가 발생합니다.

리소스에 대한 요청된 액세스가 거부되었습니다.

이미지 이름에 잘못된 문자(추가 /)를 사용하는 것이 문제였습니다.

myusername/something/image

잘못된 이미지 이름입니다.내 사용자 이름/어떤 이미지를 사용해 보십시오.이것이 누군가에게 도움이 되기를 바랍니다.

도커에는 또한 사용자가 가질 수 있는 개인 리포지토리의 수에 제한이 있습니다.로컬 컴퓨터에서 밀어넣어 개인 저장소를 만드는 경우 저장소는 생성되지만 추가로 밀어넣거나 끌어낼 수 있는 항목은 없으며 "리소스에 대한 요청된 액세스가 거부됨" 오류가 표시됩니다.

도커가 사용자 ID 및 리포지토리를 처리하는 방식은 다소 혼란스러울 수 있습니다.도커 허브에 xyz 사용자 계정을 생성한다고 가정합니다.합니다.xyz그런 다음 myrepo라는 저장소를 만듭니다.는 리지토이실다같음습다니과제로름리은포▁actually다같▁the니▁will▁be입니다.xyz/myrepo.

이미지를 푸시하려면 다음 작업을 수행해야 합니다.

docker push docker.io/xyz/myrepo

필요한 경우 ":latest" 또는 다른 태그를 추가할 수 있습니다.

만약 당신이 그것을 얻는다면.requested access to the resource is denied오류 메시지:

  1. https://hub.docker.com/ 으로 이동하여 xyz로 로그인합니다.
  2. 리포지토리 xyz/myrepo를 클릭합니다.
  3. 공동작업자를 클릭합니다.
  4. 공동작업자로 xyz를 추가합니다.

운영 체제: 우분투 16.04

이유: 클라이언트 구성 파일(~/.docker/config.json)을 삭제했습니다.

솔루션:

  • 도커를 다시 시작합니다.
    서비스 도커를 다시 시작합니다.
  • 로그인 정보를 입력한 다음 구성 파일을 자동으로 생성해야 합니다.
    --docker@company.com 에서 --docker=yourdockerhubname --email=youremail@company.com

네, 당황스러울 수도 있지만, 이 문제에 대한 명확한 문서가 전혀 없는 것 같습니다. 저는 방금 개인 저장소로 도커 프로에 등록했습니다.개인 리포지토리를 만든 다음 밀어넣기를 시도했습니다.무서운 "거부" 메시지를 받았습니다.

공용 저장소에 푸시하는 작업이 제대로 수행되어 로그인이 정확하다는 것을 알았습니다.

이전 30개 답변에서 도커 허브와 관련된 모든 것을 시도한 후...개인 저장소가 어떻게 작동하는지 마침내 이해했습니다. 공용 저장소와 동일하지만 추가 단계가 있습니다.


Docker Hub 계정 내의 모든 리포지토리에 푸시할 사용자 이름 앞에 다음과 같은 접두사를 붙여야 합니다.

다음 값이 주어지면,

username = your username 이자 = 사이름자 ▁username
name = name = 이지미
= tag = 태태

로컬 이미지에 태그를 지정하거나 사용자 이름으로 접두사를 추가합니다.

docker tag theimage:thetag yourusername/theimage:thetag

참고:

  • 조직 있는 경우 이미지 앞에 두 번 접두사를 붙여야 합니다.
docker tag theimage:thetag yourusername/yourorganizationname/theimage:thetag
  • 만약 당신의 꼬리표가latest,:thetag부품을 생략할 수 있습니다. 도커는 다음과 같이 가정합니다.:latest:thetag

접두사 이미지를 도커 허브에 푸시:

 docker push yourusername/theimage:thetag

OR

 docker push yourusername/yourorganizationname/theimage:thetag

추가 단계:

어느 하나

위의 1단계 전에 Docker Hub 계정에 개인 리포지토리를 만듭니다.

은 " ▁be▁as▁note▁same▁must▁the같야아▁name▁repos▁theitory▁that리"와 동일해야 합니다.theimage당신이 추진할 계획이라는 것.포함 안 함thetag저장소 이름의 일부입니다.예, 당신의 이미지가ubuntu:14.04저장소 이름을 지정합니다.ubuntu.

또는

저장소를 미리 만들지 않은 경우(필요하지 않음!), Docker Hub에 있는 계정으로 이동하여 새로 푸시된 repo를 클릭한 다음 Settings 탭을 클릭하여 개인 저장소로 만듭니다.


개인 저장소를 가진 다른 사람들이 두 개의 접두사로 태그를 지정하는 것을 보았습니다.xyz/abc/theimage:thetag두 번째 접두사는 리포를 비공개로 표시하기 위해 만든 것이라고 생각했습니다.아니요 - 조직에만 해당됩니다.하고 내 을 그냥 두번째접제로 theimage 거부된 오류를 수정했습니다!

다른 참고 사항: 각 repo에는 지정된 repo 이름을 가진 이미지의 태그가 지정된 버전이 모두 저장됩니다.를 들면, 를들어예,,ubuntu:latest그리고.ubuntu:14.04말하자면, 둘 다 있을 입니다.ubuntu레포의

도커와 함께하는 재미!

이미지 이름을 "vmdk"/"image_name"으로 변경합니다.

Azure Container 레지스트리를 사용하는 동안 이 문제가 발생하면 먼저 레지스트리에 로그인하여 문제를 해결할 수 있습니다.

docker login yourregistry.azurecr.io

그런 다음 레지스트리의 호스트 이름과 일치하도록 이미지에 태그를 지정합니다.

docker image tag yourimagename:[version] yourregistry.azurecr.io/yourimagename:[version]

그리고 마지막으로 밀어냅니다.

docker push yourregistry.azurecr.io/yourimagename:[version]

제 답변은 다음과 같은 공통 파이프라인에서 발생한 Azure DevOps 유사 문제와 관련이 있습니다(구체적이지만 누군가 시간을 절약하는 데 도움이 될 수 있음).

  1. github에서 소스 가져오기
  2. 도커 이미지 빌드
  3. 도커 허브에 도커 이미지 푸시

푸시할 때 받은 오류denied: requested access to the resource is denied날 여기로 보냈어요

변수에 주의하시기 바랍니다.$(Build.Repository.Name)이미지 이름에 포함됩니다.이지만, 하려면 "github", "github이 되어야 .dockerhub_account_username/your_dockerhub_repository_name.

를 바꿉니다.$(Build.Repository.Name)와 함께dockerhub_account_username/your_dockerhub_repository_name이미지 이름 필드에서 빌드 및 푸시 단계를 모두 확인할 수 있습니다.

이는 이미지를 푸시할 위치를 알기 위해 도커허브 API에 필요합니다.

다른 계정으로 이미 로그인한 경우 이 문제가 발생할 수 있습니다.이 경우 다음을 수행해야 합니다.

docker logout

그리고 나서.

docker login  

자체 Nexus Repository Manager에 이미지를 푸시하려는 사용자는 다음을 수행합니다.

Nexus Repository Manager에 로그인합니다(포트 8443은 특정 Docker 호스트 리포지토리와 연결됨).

sudo docker login xxx.mydomain.com:8443

이미지에 NEXUS SERVER IP/DNS 태그 지정

sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0

이미지 푸시

sudo docker push xxx.mydomain.com:8443/myimage:1.0.0

제가 "사용자 로그인 https://hub.docker.com "을 "사용자 로그인 docker.io "으로 변경하고 사용자 이름과 비밀번호를 제공한 후 작동했습니다.

그런 다음 다음 명령을 따릅니다.

docker tag local-image:tagname new-repo:tagname

docker push new-repo:tagname

참고: "new-repo"에는 "Docker ID + Repo name"이 포함됩니다.

아래 명령을 실행하기 전에 도커 허브에 "ubuntu" repo를 만들었습니다.

예:

docker tag alok/ubuntu:latest aloktiwari2007/ubuntu:latest

docker push aloktiwari2007/ubuntu:latest

간단한 작업 솔루션:

여기로 이동https://hub.docker.com/를 들어 하여 PRIVATE 하려면 다음과 같이 .johnsmith/private-repository은 이은입니다.NAME/REPOSITORY이미지를 빌드할 때 이미지에 사용합니다.

  • 첫째번.docker login

  • 둘째, "를 사용합니다.docker build -t johnsmith/private-repository:01 .이미지를 만들기 위해, 그리고 나는 "docker images (. 수 문자열만 붙여넣습니다.)

johnsmith/private-repository(REPOITORY) 01(TAD) c5f4a2861d6e(이미지 ID) 2일 전(CREATE) 305MB(SIZE)

  • 셋째, 저는 사용합니다.docker push johnsmith/private-repository:01

알았어!

앱에서 로그인합니다.터미널에서만 시도했지만 운이 없었습니다.

이것은 버전 17.06.1입니다.

enter image description here

도커 로그인 후 이미지의 이름을 접두사로 지정해야 합니다.

의 이름이 ": " "-"일 Shah이미지는 다음과 같아야 합니다.

Shah/firstimage

저도 같은 문제가 있었습니다.저의 경우, index.docker.io 에 로그인하여 이미지를 docker.io/username/image:tag 에 푸시했습니다.

솔루션은 다음 명령을 실행하여 docker.io 에 로그인하는 것입니다.

export CI_REGISTRY=docker.io
docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
docker push USERNAME/IMAGE:TAG

출력은 다음과 같습니다.

 The push refers to repository [docker.io/USERNAME/IMAGE:TAG]
 eeb7e16c6369: Preparing
 6bd09f46d0ae: Preparing
 f5a7f7a3fb28: Preparing
 07952c1df7f6: Preparing
 a4522c0d203b: Preparing
 3e207b409db3: Preparing
 3e207b409db3: Waiting
 a4522c0d203b: Layer already exists
 3e207b409db3: Layer already exists
 f5a7f7a3fb28: Pushed
 6bd09f46d0ae: Pushed
 07952c1df7f6: Pushed
 eeb7e16c6369: Pushed
 latest: digest: sha256:7ce256fa83ef1eebcaaaa460c4d73f87f2adf304bc6e6c1b83a19d987cd61ad5
size: 1579
Running after_script
00:02
Saving cache
00:01
Uploading artifacts for successful job
00:02
 Job succeeded

안부 전해요.

이 질문에 이미 많은 답이 있다는 것을 알지만, 그 중 어느 것도 나에게 도움이 되지 않았습니다.

제가 관찰한 결과 이미지 구축 속도가 매우 빨랐고 docker.io 에 푸시하면 오류가 발생했습니다.

denied: requested access to the resource is denied

내가 또한 주목한 것은 하는 것입니다.

docker image ls

이미지의 최신 빌드가 며칠 전이라는 것이 드러났습니다.

나는 해야만 했습니다.

docker container prune 

정지된 컨테이너를 제거하기 위해, 그리고.

docker image prune -a

오래된 이미지를 제거합니다.그러면 저는 제 이미지를 성공적으로 구축하고 밀어낼 수 있었습니다.

'requested access to the resource is denied'는 docker.io 가 아니라 로컬 도커에서 온 것입니다.빌드 중에 실패하지 않는다는 것이 재미있습니다.

이것은 Windows 10에서 작동했습니다.

도커 로그인

도커 파일이 있어야 하며 이미지를 빌드하고 즉시 도커 허브에 푸시해야 합니다.

  1. 허브에
    sudo docker 로그인 -u your_docker
    하세요.


  2. sudo docker build -t your_build/demorepo:1.0
    위의_username/demorepo는 도커 허브의 리포이기 때문에 이미지 이름에 대한 언급이 없습니다.태그가 지정된 이름은 1.0입니다.

  3. 누르기
    sudo docker push your_domore/demorepo:1.0

이미 존재하는 이미지를 도커 허브로 푸시하려면 다음과 같이 하십시오.


  1. sudo docker 로그인 -u your_docker
    하세요.

  2. 태그를 ).
    sudo docker 태그 test_dumper:1.0 your_dump/demorepo:first push
    위에서 first push는 이미지 test_docker에 1.0 태그로 지정된 태그 이름입니다.
    : ( 이름이 되지 않음) 파일: (태그 지정 중에는 이미지 이름이언급되지 않음)
    이제 도커 이미지에서 하나는 test_docker 1.0이고 다른 하나는 _username/demorepo를 먼저 푸시하는 두 개의 이미지가 나타납니다.

  3. 누르기 미지푸시이▁push시푸▁the
    sudo docker push your_domorepo/demorepo:첫 번째 push

내 사용자 이름으로 태그를 지정해야 했습니다.

docker login

docker tag imageName username/imageName

docker push username/imageName

오직 이것만이 나에게 효과가 있었습니다!

저도 이 문제를 겪고 있습니다.무료 계층을 사용하고 있으며 개인 저장소에 있는 이미지를 두 개 이상 푸시하려고 합니다.하나의 이미지를 비공개로 하고 나머지는 공개하는 것이 저를 위해 일했습니다.

언급URL : https://stackoverflow.com/questions/41984399/denied-requested-access-to-the-resource-is-denied-docker

반응형