Elastic Container Registry 줄여서 ECR은 AWS에서 사용할 수 있는 컨테이너 저장소이다.많이들 쓰는 Public Container Registry로는 Docker hub가 이미 존재하긴한다. 그래서 ecr 왜 사용하는 걸까? 한번 알아보자
RegistryRepositorydocker hub도 프라이빗한 리포지토리가 존재한다. 단지 공짜는 아니다. 물론 ECR도 공짜는 아니다...
근데 ECR를 사용하게 된다면 AWS 서비스 들과 통합이 쉽게되어서 사용한다.
ecr을 직접 사용해보면 이해가 더 쉽다.
aws ecr create-repository --repository-name test-repo --region ap-northeast-2
먼저 awscli 설정이 끝난 전제로 진행한다.
ecr create-repository 명령어로 리포지토리를 생성해준다.

그럼 json 형태로 이러한 결과를 보여주는데 이때 repositoryurl만 복사해준다. 이러한 url 형식이 컨테이너의 태그이름이 될것이다.
또한 이러한 방식으로 만들면 기본값은 프라이빗 리포지토리이다. 만약 퍼블릭으로 만들고 싶다면 ecr-public으로 명령어를 적어주면 된다.
이제 ecr에 이미지를 넣을려면 생성된 ecr에 대해 인증을 해야한다. 쉽게 말해 로그인을 해야됨
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.ap-northeast-2.amazonaws.com

aws_account_id에 본인의 aws 계정 id를 넣어줘야함
다음과 같이 뜨면 성공이다.
이제 이미지를 push 하기만하면 된다. 그전에 이미지 태그를 달아줘야하는데 태그는 repositoryurl 형식으로 지어주면된다.

이런씩으로 지어준다음 push 하면 된다.
docker push 컨테이너 이름

이미지가 잘들어갔다.
콘솔에서 확인해보면 다음과같다.


또는 쉘에서 다음명령어를 확인한다.
aws ecr list-images --repository-name test-repo
그럼 이미지 id를 가져올 수 있다.
