본문 바로가기

개인 공부

9/11 일_Amazon ECR(Docker Image push/pull)

728x90

1. Amazon ECR(Elastic Container Registry)

이미 Docker Hub에 리포지토리를 파고 이미지를 push 하였지만,

AWS의 서비스들(EC2, RDS, SSM - Systems Manager, IAM, Lambda, EventBridge)을 이용하여
서브 프로젝트를 만들고 있기 때문에 ECR에도 도커 이미지 올려보려 한다.

 

아래에 절차를 정리해놨다.

 

1) Amazon ECR 리포지토리 생성

 

2) Amazon IAM(Identity and Access Management)_액세스 관리_사용자_사용자 추가

IAM_사용자 이름 입력, 액세스 키 체크

AmazonEC2ContainerRegistryFullAccess 권한 부여

IAM_기존 정책 직접 연결 선택, 정책 선택
IAM_공란으로 두고 다음
IAM_사용자 만들기
IAM_액세스 키 ID/비밀 액세스 키 따로 보관

728x90

 

3) AWS CLI 설치 및 로그인, Amazon ECR 리포지토리에 도커 이미지 push on 로컬 터미널

# Download the installation
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

# Unzip the installer
unzip awscliv2.zip

# Run the install program
sudo ./aws/install

# Confirm the installation
aws --version

# AWS CLI 환경 설정
aws configure

AWS Access Key ID : [[IAM 사용자 액세스 키 ID]]
AWS Secret Access Key : [[IAM 사용자 비밀 액세스 키]]
Default region name: ap-northeast-2
Default output format : json

# AWS CLI 사용
# --region 아시아 태평양 (서울) | --password-stdin Amazon ECR 프라이빗 리포지토리 URI
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin [[AWS 계정 ID 12자리]].dkr.ecr.ap-northeast-2.amazonaws.com

# Amazon ECR 리포지토리 확인
aws ecr describe-repositories

# 기존에 빌드해둔 도커 이미지에 태그를 지정
docker tag stock_trade:v0.1 [[AWS 계정 ID 12자리]].dkr.ecr.ap-northeast-2.amazonaws.com/stock_trade:v0.1

# 도커 이미지를 Amazon ECR 리포지토리로 푸시
docker push [[AWS 계정 ID 12자리]].dkr.ecr.ap-northeast-2.amazonaws.com/stock_trade:v0.1

 

4) 배포: Amazon ECR 리포지토리에서 도커 이미지 pull on 로컬 터미널

# 배포 대상 서버에서 AWS CLI 로그인
# --region 아시아 태평양 (서울) | --password-stdin Amazon ECR 프라이빗 리포지토리 URI
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin [[AWS 계정 ID 12자리]].dkr.ecr.ap-northeast-2.amazonaws.com

# Amazon ECR 리포지토리에서 도커 이미지 풀
docker pull [[AWS 계정 ID 12자리]].dkr.ecr.ap-northeast-2.amazonaws.com/stock_trade:v0.1

# 도커 컨테이너 생성/실행
docker run -d [[AWS 계정 ID 12자리]].dkr.ecr.ap-northeast-2.amazonaws.com/stock_trade:v0.1

# 실행 중인 도커 컨테이너 및 서비스 확인
docker ps
docker logs [[CONTAINER ID]]

 

cf) Amazon ECR 리포지토리 생성 on 로컬 터미널

# Amazon ECR 리포지토리 생성
aws ecr create-repository \
    --repository-name hello-world \
    --image-scanning-configuration scanOnPush=true \
    --region region

 

cf) Amazon ECR 리포지토리 안 도커 이미지 삭제 on 로컬 터미널

# Amazon ECR 리포지토리 안 도커 이미지 삭제
aws ecr batch-delete-image --repository-name stock_trade --image-ids imageTag=v0.1 --region ap-northeast-2

 

cf) Amazon ECR 리포지토리 삭제 on 로컬 터미널

# Amazon ECR 리포지토리 삭제
aws ecr delete-repository \
      --repository-name stock_trade \
      --force \
      --region ap-northeast-2
728x90