AWS
ECR에 도커 이미지 푸시하기
나를찾는아이
2024. 12. 16. 12:38
728x90
반응형
AWS의 컨테이너 레지스트리에 도커 이미지를 푸시해보겠습니다
ECR에 푸시한 도커 이미지는 다양한 곳에서 사용될수 있습니다
이미지의 레포지토리 이름을 지정합니다 namespace/repo-name과 같은 형식입니다
생성을 하게 되면 이미지 레포지토리가 생성됩니다
레포지토리만 생성된 상태고 아직 업로드가 되지 않은 상태입니다
상세하게 명령어가 설명되어있습니다
1. 먼저 인증 토큰을 받는 과정입니다 aws-cli가 설치되어있어야 하고, 인증정보도 미리 설정해두셔야 합니다
ecr에 이미지를 푸시하기 위한 아래의 IAM 정책을 사용하셔도 됩니다
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:CompleteLayerUpload",
"ecr:UploadLayerPart",
"ecr:InitiateLayerUpload",
"ecr:BatchCheckLayerAvailability",
"ecr:PutImage",
"ecr:BatchGetImage"
],
"Resource": "arn:aws:ecr:ap-northeast-2:xxxxxxxxx:repository/hello/world"
},
{
"Effect": "Allow",
"Action": "ecr:GetAuthorizationToken",
"Resource": "*"
}
]
}
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin xxxxxxxxxxx.dkr.ecr.ap-northeast-2.amazonaws.com
# Login Succeeded
Login Succeeded 라는 메시지와 함께 인증 토큰이 내부에 저장되었습니다
이제 ecr로 이미지를 푸시할 준비가 되었습니다
2. 도커 이미지를 빌드합니다
docker build -t hello/world .
레포지토리 이름과 동일한 이름으로 이미지를 빌드합니다
3. 이미지에 태그를 지정합니다
docker tag myname/hello:latest xxxxxxxxxx.dkr.ecr.ap-northeast-2.amazonaws.com/hello/world:latest
4. 이미지를 aws로 푸시합니다
docker push xxxxxxxxx.dkr.ecr.ap-northeast-2.amazonaws.com/hello/world:latest
푸시가 완료되면 ECR에 이미지 정보가 표시됩니다
이렇게 푸시한 이미지는 ecs, codebuilde, batch 등 무궁무진하게 활용될 수 있습니다
728x90
반응형