거부 됨 : 리소스에 대한 요청 된 액세스가 거부되었습니다. : docker
첫 번째 docker Image를 만들기 위해이 링크 를 따르고 성공적으로 진행되었으며 이제이 이미지를이 링크 에서 내 docker 저장소로 푸시하려고합니다 . 그러나이 이미지를 repository에 푸시하려고 할 때 마다이 유형의 오류가 발생합니다.
denied: requested access to the resource is denied
누구 든지이 문제에 대한 힌트를 줄 수 있습니까? 도움을 주시면 감사하겠습니다.
참고 : docker에 성공적으로 로그인했습니다
받는 사람 덕분에 대답 에서 제공 딘 우 와 이 댓글 로 SES는 , 밀어 전에, 당신의 고정 표시기 허브 계정에 명령 줄에서 로그인을 기억
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
도커 초보자 코스를 수강하는 동안 동일한 문제가 발생했습니다. docker login
도커 푸시 콜 이전에 문제를 해결했습니다 .
나는 같은 문제가 있었지만 여기에 주어진 대답은 효과가 없었다. 나는 몇 가지 단계를 시도했고 마침내 그것을 밀어 내릴 수있었습니다. 이것이 누군가를 돕기를 바랍니다.
나를 위해 일한 단계는 다음과 같습니다.
1) 도커에 로그인하십시오.
docker login -u sirimalla
2) 이미지 빌드에 태그를 지정하십시오.
내 이미지 이름은 여기에 있습니다 : mylocalimage 그리고 기본적으로 태그가 있습니다 : 최신
및 내 사용자 이름은 : sirimalla docker cloud에 등록 된대로 : dockerhub 라는 공용 저장소를 만들었습니다
그래서 내 개인 저장소는 이제 sirimalla / dockerhub가 되고 태그를 사용하여 이미지를 푸시하고 싶습니다.myfirstimagepush
나는 아래와 같이 태그했다 :
docker tag mylocalimage:latest sirimalla/dockerhub:myfirstimagepush
3) 아래와 같이 이미지를 개인 도커 저장소로 푸시했습니다.
docker push sirimalla/dockerhub:myfirstimagepush
그리고 그것은 내 개인 도커 저장소로 성공적으로 밀렸습니다.
또한 이미지에 태그를 지정할 때 네임 스페이스를 사용한 다음 저장소 / mydevrepo 를 사용하여 이미지에 태그 를 지정해야합니다 . Docker 문서를 따라갈 때 혼란 스럽습니다. 그 후 나는 사용했다 :
docker login
그런 다음 'tagged name'을 사용하여 이미지를 푸시했습니다 .
docker push {namespace}/mydevrepo
아래 명령을 사용하십시오.
$ 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-repo와 같은 공용 저장소가 있으므로 명령은 다음과 같습니다.
$ docker tag first-image manjeet86/docker-repo:first-image
$ docker push manjeet86/docker-repo:first-image
그냥 참조 :
대신 /
그 트릭이었다. 그것은 나를 위해 작동합니다. 태그 /
대신 태그를 지정할 수 있는지 여부는 알 수 :
없지만 다른 목적 일 수 있습니다.
https://docs.docker.com/engine/reference/commandline/tag/#examples
도 커가 사용자 ID 및 리포지토리를 처리하는 방식은 약간 혼동 될 수 있습니다. docker hub에서 사용자 계정 xyz를 생성한다고 가정 해 봅시다. 새 계정은 자동으로 네임 스페이스를 설정합니다 xyz
. 그런 다음 myrepo라는 저장소를 작성하십시오. 저장소 이름은 실제로입니다 xyz/myrepo
.
이미지를 푸시하려면 다음을 수행하십시오.
docker push docker.io/xyz/myrepo
필요한 경우 ": latest"또는 다른 태그를 추가 할 수 있습니다.
requested access to the resource is denied
오류 메시지가 표시 되면
- https://hub.docker.com/으로 이동하여 xyz로 로그인하십시오.
- 저장소 xyz / myrepo를 클릭하십시오.
- 공동 작업자를 클릭하십시오.
- xyz를 공동 작업자로 추가하십시오.
도커 허브에 무슨 일이 있었는지 확실하지 않지만 게시 된 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 다음은 2018 년 1 월 현재 나를 위해 일한 해결 방법입니다.
- hub.docker.com으로 이동하여 저장소를 개인용으로 변경하십시오.
- 셸에서 다음을 수행하십시오.
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
- 도커 허브로 돌아가서 repo를 다시 공용으로 변경하십시오. 그것은 나를 위해 일했다.
운영체제 : Ubuntu16.04
이유 : 클라이언트 구성 파일 ( ~ / .docker / config.json )을 삭제했습니다.
해결책:
- 도커를 다시 시작하십시오.
서비스 도커 다시 시작 . - 로그인 정보를 입력 한 다음 구성 파일을 자동으로 생성해야합니다.
도커 로그인 --username = yourdockerhubername --email=youremail@company.com
Docker에는 보유 할 수있는 개인 리포지토리 수에 제한이 있습니다. 로컬 컴퓨터에서 푸시하여 개인 리포지토리를 생성하는 경우 리포지토리가 생성되지만 더 이상 리포지토리로 푸시하거나 가져올 수 없으며 "리소스에 대한 요청 된 액세스가 거부되었습니다"라는 오류가 발생합니다.
내 문제는 이미지 이름에 유효하지 않은 문자 (추가 /)를 사용하는 것입니다.
myusername/something/image
잘못된 이미지 이름입니다. myusername / something-image를 사용해보십시오. 이것이 누군가를 돕기를 바랍니다.
오늘도 같은 문제가있었습니다. 나를 위해 일한 유일한 것은 "docker.io"에 명시 적으로 로그인하는 것입니다.
도커 로그인 docker.io
다른 여러 이름을 시도했지만 로그인이 작동하는 것처럼 보이지만 나중에 "자원에 대한 요청 된 액세스가 거부되었습니다"오류가 발생합니다.
이미지를 자신의 Nexus 리포지토리 관리자로 푸시하려는 경우 다음을 수행하십시오.
1) Nexus Repository Manager에 로그인 (포트 8443은 특정 Docker 호스트 리포지토리와 연결됨)
sudo docker login xxx.mydomain.com:8443
2) NEXUS SERVER IP / DNS로 이미지에 태그를 지정하십시오
sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0
3) 이미지를 밀어
sudo docker push xxx.mydomain.com:8443/myimage:1.0.0
앱에서 로그인하십시오. 나는 운이없는 터미널에서만 노력하고 있습니다.
이것은 버전 17.06.1입니다
간단한 작업 솔루션 :
여기 https://hub.docker.com/
예를 들어 이름을 가진 개인 저장소를 만들 johnsmith/private-repository
이것은이다 NAME/REPOSITORY
이미지를 구축 할 때 당신이 당신의 이미지에 사용됩니다.
먼저,
docker login
둘째, "
docker build -t johnsmith/private-repository:01 .
"를 사용하여 이미지를 생성하고 "docker images
"를 사용 하여 아래의 노란색 상자와 같이 생성 된 이미지를 확인합니다. (죄송 합니다만 표 형식을 붙여 넣을 수없고 텍스트 문자열 만 붙여 넣을 수 있습니다)
johnsmith / private-repository (REPOSITORY) 01 (TAD) c5f4a2861d6e (이미지 ID) 2 일 전 (CREATED) 305MB (SIZE)
- 셋째, 나는
docker push johnsmith/private-repository:01
끝난!
Azure Container Registry를 사용하는 동안이 문제가 발생하면 먼저 레지스트리에 로그인하여 문제를 해결할 수 있습니다.
docker login yourregistry.azurecr.io
그런 다음 레지스트리의 호스트 이름과 일치하도록 이미지에 태그를 지정하십시오.
docker image tag yourimagename:[version] yourregistry.azurecr.io/yourimagename:[version]
그리고 마지막으로 밀어 넣습니다.
docker push yourregistry.azurecr.io/yourimagename:[version]
나는이 문제를 가지고 있었고 여기에있는 솔루션을 테스트했지만 아무 소용이 없다면 적어도 출력에 따라 올바르게 로그인 docker login
했지만 여전히 이미지를 푸시 할 수 없었습니다. 마지막으로 효과가 있었던 것은 단순히하는 것입니다.
docker logout
그리고 docker login
다시, 그것은 사소한 일이었습니다. 무슨 일이 있었는지 잘 모르겠지만 다시 로그인해야했습니다.
내 대답은 다음과 같은 일반적인 파이프 라인과 관련하여 Azure DevOps와 비슷한 문제와 관련이 있습니다 (더 구체적이지만 누군가가 시간을 절약하는 데 도움이 될 수 있음).
- github에서 소스 가져 오기
- 도커 이미지 빌드
- 도커 이미지를 dockerhub로 푸시
푸시에서받은 오류가 denied: requested access to the resource is denied
여기로 보냈습니다.
$(Build.Repository.Name)
이미지 이름에 포함 된 변수에주의 하십시오. 기본적으로 github의 리포지토리 이름이지만 푸시하려면 작동해야합니다 dockerhub_account_username/your_dockerhub_repository_name
.
교체 $(Build.Repository.Name)
로 dockerhub_account_username/your_dockerhub_repository_name
모두 빌드 및 푸시 단계는 이미지 이름 필드에.
dockerhub api에서 이미지를 어디로 푸시해야하는지 알아야합니다.
이후에도 여전히 실패하면 docker login
푸시하려는 저장소가 처음에 작성되었는지 확인하십시오.
나는 또한이 문제를 겪고있다. 프리 티어를 사용하고 있으며 개인 저장소에서 둘 이상의 이미지를 푸시하려고합니다. 1 이미지를 비공개로 만들고 나머지는 공개적으로 만들었습니다.
제 경우에는 리포지토리에 대한 관리자 권한이있는 팀에 소속 된 조직으로 추진하고있었습니다.
그래서 내 푸시 명령은 다음과 같습니다. docker push org-name/image-name
사용자 이름 / 이미지 이름으로 푸시했지만 조직에는 푸시 할 수 없습니다. 권한을 세 번 확인했습니다. 아무것도 효과가 없었습니다.
해결책은 docker hub에서 repo를 삭제하고 다음을 사용하여 다시 새로 작성하는 것입니다. docker push org-name/image-name
그 가치에 대해서는 계정이 조직으로 전환되기 전에 리포지토리가 원래 푸시 된 것 같습니다.
이 대답은 내 미래의 자기 자신을위한 다른 사람만큼이나 중요합니다. 올바르게 로그인 할 때이 정확한 문제가 발생했지만 개인 저장소의 수가 계획에서 허용하는 한도보다 크거나 같은 경우 개인 저장소로 푸시하려고합니다.
어떻게 개인 저장소를 너무 많이 만들 수 있었는지 잘 모르겠지만 계획에 5 개의 개인 저장소가 포함되어 있고 어떻게 든 6 개가있는 경우 다음과 같은 오류가 발생합니다.
denied: requested access to the resource is denied
필자의 경우 기본 가시성이 개인으로 설정되어 있기 때문에 개인 저장소가 너무 많을 수 있습니다.
여기에서 보유 할 수있는 개인 저장소의 수를 결정합니다.
문제가있는 리포지토리를 공개 한 후에는 문제가 분명해졌습니다.
이미지 이름을 username / image-name docker tag로 변경하십시오. 현재 이미지 / 현재 이미지 dockerhub-username / some-name : your-tag (예 : latest)
"Docker for Windows"애플리케이션에서 로그 아웃하고 https://hub.docker.com/ 사이트에서 사인 아웃 한 후 "docker login"및 "docker push"를 수행하십시오. 그것은 나를 도왔습니다.
명령 프롬프트에서 도커 로그인이 작동하지 않았습니다. 푸시하려고 할 때 "자원에 대한 요청 된 액세스가 거부되었습니다"라는 메시지가 계속 나타납니다.
Windows 앱 자체의 도커에 로그인 한 후 도커 푸시는 정상적으로 작동했습니다. 이것이 누군가를 돕기를 바랍니다.
도커 로그인 후 접두사로 이미지 이름을 지정해야합니다.
예를 들어 docker-hub의 사용자 이름이 Shah
인 경우 이미지는 다음과 같아야합니다.
Shah/firstimage
다른 사람 이이 문제에 직면 한 경우-제 경우에는 (더 이상 사용되지 않는) docker compose
접근 방식을 사용하여 이미지를 푸시 했기 때문 입니다. 예상대로 전환 docker push
하면 문제가 해결되었습니다.
이것에 대한 또 다른 (꽤 똑똑한) 이유 : 당신은 당신의 계획에 대한 개인적인 저장소가 없습니다.
제 경우에는 sudo -E가이 메시지로 실패했습니다. 해결 방법은 sudo없이 액세스 도커를 제공하는 것입니다 (그룹 도커 생성, 그룹에 (Jenkins) 사용자 추가, 그룹을 /var/run/docker.sock에 설정). 이제 docker push
sudo가 필요하지 않으며 작동합니다.
그래서 누군가에게 도움이 될 경우를 대비해서 ...
같은 문제가 있었고 여기 내 문제와 FIX가 있습니다.
sudo docker run -d
--restart=always \
--name registry \
-v /srv/registry/certs:/certs \
-v /srv/registry/storage:/var/lib/registry \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/galaxy.cert \
-e REGISTRY_HTTP_TLS_KEY=/certs/galaxy.key \
-p 443:443 \
registry:2
그런 다음 네트워크의 랩톱에서 이미지를 갤럭시로 푸시하려고 했으므로 다음과 같이하십시오.
docker login galaxy
이렇게하면 다음과 같은 오류가 발생합니다.
Login did not succeed, error: Error response from daemon:
Get https://galaxy/v2/: x509: certificate signed by unknown authority
이상하게 도이 문제에 대한 수정은 다음과 같이 로그인하는 것입니다.
docker login galaxy:443
로그인이 성공했습니다.
그런 다음 랩톱의 이미지를 '은하계'로 푸시하려고했습니다.
이미 다음과 같은 이미지 태그를 만들었습니다.
galaxy/myImage:0.0.1
그래서 나는 이것을하기 위해 노력했다.
docker push galaxy/myImage:0.0.1
답장을 받았습니다 :
The push refers to repository [docker.io/galaxy/myImage]
7ab460574f86: Preparing
1aecaf56754d: Preparing
1df1b5f06ca4: Preparing
denied: requested access to the resource is denied
이상하게 도이 문제에 대한 수정 사항을 처음 발견하면 다음과 같이 이미지에 태그를 지정했습니다.
docker tag myImage:0.0.1 galaxy:443/myImage:0.0.1
... 그리고 다음과 같이 밀어 넣으십시오.
docker push galaxy:443/myImage:0.0.1
따라서 어떤 이유로 든 저장소 이름의 필수 부분으로 태그에 포트를 포함시켜야했습니다.
이것이 다른 사람들을 돕기를 바랍니다.
이전의 모든 대답은 정확했습니다. 언급하지 않은 정보를 추가하고 싶습니다.
프로젝트가 개인 프로젝트 인 경우 이미지를 올바르게 푸시하려면 read_registry 키가 활성화 된 개인 액세스 토큰 또는 배포 토큰을 구성해야합니다.
출처 : https://gitlab.com/help/user/project/container_registry#using-with-private-projects
도움이되기를 바랍니다 (질문이 지금까지 게시 된 경우)
'development' 카테고리의 다른 글
Groovy의 파일을 문자열로 읽는 방법은 무엇입니까? (0) | 2020.03.18 |
---|---|
파이썬에서 주 번호를 얻는 방법? (0) | 2020.03.18 |
MySQL에서 datetime에 삽입 할 때 PHP date () 형식 (0) | 2020.03.17 |
Rails 4에서 참조 열 마이그레이션 추가 (0) | 2020.03.17 |
CSS를 사용하여 텍스트 숨기기 (0) | 2020.03.17 |