【AWS】ECR의 public에 push하는 방법
2925 단어 ElasticContainerService도커ECRAWS
소개
2020년 12월에 만들어진 공용 리포지토리로 푸시하는 방법입니다.
ECR의 개인 리포지토리에 이미지를 푸시 한 적이 있었지만,
몇 가지 넘어졌기 때문에이 포인트를 올립니다!
· AWS-CLI 버전
· IAM 설정
AWSCLI 버전 업
버전 확인.
$ aws --version
aws-cli/2.0.8 Python/*****
제 경우에는 버전이 오래되고 나중에 지정하는 명령을 인식하지 못했기 때문에,
먼저 버전 업합니다.
공식 문서의 방법으로 버전 업.
macOS에 AWS CLI 버전 2 설치
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /
만약을 위해 확인.
$ aws --version
aws-cli/2.2.31 Python/3.8.8 Darwin/19.6.0 exe/x86_64 prompt/off
ECR의 공용 리포지토리 생성
AWS 콘솔 화면에서 리포지토리를 생성합니다.
서비스에서 Elastic Container Registry를 선택합니다.
아래와 같이 public 탭을 선택하고 리포지토리 작성 버튼을 눌러 작성합니다.
작성 후 리포지토리 별 URI는 태그 지정이나 푸시할 때 사용한다.
푸시 방법
먼저 리포지토리에 인증합니다.
아래 그림과 같이 푸시 명령의 표시 버튼을 누르면 그 방법이 나옵니다.
사용자마다 전용 명령이 표시되므로 그것을 복사하여 실행합니다.
$ aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/(それぞれのエイリアス)
Login Succeeded
로그인 성공하면 Docker Hub나 비공개 리포지토리처럼 image에 태그를 지정합니다. 방법도 거기에 나열되어 있습니다.
$ docker tag blog_app:latest public.ecr.aws/(それぞれのエイリアス)/blog_app:latest
blog_app:latest
의 이미지 이름을 바꾸십시오.
태그 이름을 변경하면 푸시합니다.
$ docker push public.ecr.aws/(それぞれのエイリアス)/blog_app:latest
이때 나는 오류가 났다 (ToT)
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::(アカウントID):user/(ユーザー名) is not authorized to perform: ecr-public:GetAuthorizationToken on resource: *
ecr-public
에 대한 권한이 없습니다. AmazonEC2ContainerRegistryFullAccess가 첨부되었습니다.
IAM 설정
IAM의 기존 정책을 살펴보면 AmazonElasticContainerRegistryPublicFullAccess라는 정책이 있었습니다(**)
내 검색 방법이 좋지 않기 때문에이 정책을 찾을 수 없습니다. . .
붉은 선의 녀석입니다!
이제 다시 push
명령하면 무사히 업로드됩니다!
저도 ECR은 약 반년 이상 흔들며 넘어졌습니다.
조사하면 2020년 말에 추가된 기능으로 그 사이에 CLI도 IAM도 업데이트 되었겠지요(^-^;
Reference
이 문제에 관하여(【AWS】ECR의 public에 push하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamato1491038/items/b3ea11de7ad01a3cbd73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
버전 확인.
$ aws --version
aws-cli/2.0.8 Python/*****
제 경우에는 버전이 오래되고 나중에 지정하는 명령을 인식하지 못했기 때문에,
먼저 버전 업합니다.
공식 문서의 방법으로 버전 업.
macOS에 AWS CLI 버전 2 설치
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /
만약을 위해 확인.
$ aws --version
aws-cli/2.2.31 Python/3.8.8 Darwin/19.6.0 exe/x86_64 prompt/off
ECR의 공용 리포지토리 생성
AWS 콘솔 화면에서 리포지토리를 생성합니다.
서비스에서 Elastic Container Registry를 선택합니다.
아래와 같이 public 탭을 선택하고 리포지토리 작성 버튼을 눌러 작성합니다.
작성 후 리포지토리 별 URI는 태그 지정이나 푸시할 때 사용한다.
푸시 방법
먼저 리포지토리에 인증합니다.
아래 그림과 같이 푸시 명령의 표시 버튼을 누르면 그 방법이 나옵니다.
사용자마다 전용 명령이 표시되므로 그것을 복사하여 실행합니다.
$ aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/(それぞれのエイリアス)
Login Succeeded
로그인 성공하면 Docker Hub나 비공개 리포지토리처럼 image에 태그를 지정합니다. 방법도 거기에 나열되어 있습니다.
$ docker tag blog_app:latest public.ecr.aws/(それぞれのエイリアス)/blog_app:latest
blog_app:latest
의 이미지 이름을 바꾸십시오.
태그 이름을 변경하면 푸시합니다.
$ docker push public.ecr.aws/(それぞれのエイリアス)/blog_app:latest
이때 나는 오류가 났다 (ToT)
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::(アカウントID):user/(ユーザー名) is not authorized to perform: ecr-public:GetAuthorizationToken on resource: *
ecr-public
에 대한 권한이 없습니다. AmazonEC2ContainerRegistryFullAccess가 첨부되었습니다.
IAM 설정
IAM의 기존 정책을 살펴보면 AmazonElasticContainerRegistryPublicFullAccess라는 정책이 있었습니다(**)
내 검색 방법이 좋지 않기 때문에이 정책을 찾을 수 없습니다. . .
붉은 선의 녀석입니다!
이제 다시 push
명령하면 무사히 업로드됩니다!
저도 ECR은 약 반년 이상 흔들며 넘어졌습니다.
조사하면 2020년 말에 추가된 기능으로 그 사이에 CLI도 IAM도 업데이트 되었겠지요(^-^;
Reference
이 문제에 관하여(【AWS】ECR의 public에 push하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamato1491038/items/b3ea11de7ad01a3cbd73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 리포지토리에 인증합니다.
아래 그림과 같이 푸시 명령의 표시 버튼을 누르면 그 방법이 나옵니다.
사용자마다 전용 명령이 표시되므로 그것을 복사하여 실행합니다.
$ aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/(それぞれのエイリアス)
Login Succeeded
로그인 성공하면 Docker Hub나 비공개 리포지토리처럼 image에 태그를 지정합니다. 방법도 거기에 나열되어 있습니다.
$ docker tag blog_app:latest public.ecr.aws/(それぞれのエイリアス)/blog_app:latest
blog_app:latest
의 이미지 이름을 바꾸십시오.태그 이름을 변경하면 푸시합니다.
$ docker push public.ecr.aws/(それぞれのエイリアス)/blog_app:latest
이때 나는 오류가 났다 (ToT)
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::(アカウントID):user/(ユーザー名) is not authorized to perform: ecr-public:GetAuthorizationToken on resource: *
ecr-public
에 대한 권한이 없습니다. AmazonEC2ContainerRegistryFullAccess가 첨부되었습니다.IAM 설정
IAM의 기존 정책을 살펴보면 AmazonElasticContainerRegistryPublicFullAccess라는 정책이 있었습니다(**)
내 검색 방법이 좋지 않기 때문에이 정책을 찾을 수 없습니다. . .
붉은 선의 녀석입니다!
이제 다시 push
명령하면 무사히 업로드됩니다!
저도 ECR은 약 반년 이상 흔들며 넘어졌습니다.
조사하면 2020년 말에 추가된 기능으로 그 사이에 CLI도 IAM도 업데이트 되었겠지요(^-^;
Reference
이 문제에 관하여(【AWS】ECR의 public에 push하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamato1491038/items/b3ea11de7ad01a3cbd73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【AWS】ECR의 public에 push하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamato1491038/items/b3ea11de7ad01a3cbd73텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)