AWS ECR 사용 방법 총정리
전체적인 내용과 순서는 아래와 같다.
1. 도커 이미지를 만들고
2. ECR에 이미지를 올린 다음
3. EC2 VM에서 해당 이미지를 가져와 사용하는 방법을 정리
0. 사전 조건
- AWS 계정 보유 > EC2 인스턴스 생성 > ssh 접속 설정 완료 > IAM 권한 설정 완료
- ECR 레퍼지토리 생성 완료 > 정책등록 완료 > IAM 권한 설정 완료
- AWS CLI 설치 완료
1. 도커 이미지 만들기
ec2 에서 도커를 설치하고 샘플로 이미지를 만들어 보자.
https://docs.aws.amazon.com/ko_kr/AmazonECR/latest/userguide/getting-started-cli.html
설치 및 샘플 이미지 만드는 것은 위의 내용을 참고하였음.
$ sudo yum update -y
$ sudo amazon-linux-extras install docker
$ sudo service docker start
$ sudo usermod -a -G docker ec2-user
$ docker info
도커 이미지 만들기
Dockerfile 작성
$ touch Dockerfile
$ vim Dockerfile
FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \ echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
빌드
$ docker build -t hello-world .
이미지 생성
$ docker images --filter reference=hello-world
이미지 실행
$ docker run -t -i -p 80:80 hello-world
이미지 실행 확인
로컬 PC에서 브라우저를 통해 ec2 ip로 접근
(ec2 ip는 curl이 설치된 경우 vm에서 $ curl ifconfig.me 실행을 통해 알아낼 수 있음)
브라우저에서 Hellow, World! 가 나오면 정상 동작하는 것임
2. ECR에 로컬에서 만든 이미지를 푸시하는 방법
자, 이제 앞에서 만든 이미지를 ECR에 올려보자.
ECR 사용을 위한 로그인
aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.regionID.amazonaws.com
바로위 내용으로 미리 로그인을 하지 않으면 권한 에러가 나고 docker push가 안된다.
레퍼지토리의 정책에 해당 사용자의 권한을 주는 것도 잊지 말자.
이미지의 tag를 수정해줌
$ docker tag hello-world:latest 701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo
수정된 tag를 이용해서 푸시
$ docker push 701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo
Using default tag: latest
The push refers to repository [701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo]
d22a665fdc86: Pushed
d2f6af949869: Pushed
0840544a05e8: Pushed
6babb56be259: Pushed
latest: digest: sha256:a0f90959d7146c7a2dff91665312eeeda12345678904f1asdkbdjs9ad5b4 size: 1155
$
3. EC2 VM에서 해당 이미지를 가져와서 실행하는 방법
이제는 ec2 instance에서 올려 놓은 이미지를 풀 해서 사용하는 것을 해보자.
이미지 pull
$ docker pull 701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo
이미지 실행
$ docker run 701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo
로컬에서 처럼 IP 확인
$ curl ifconfig.me
111.111.111.111
동작 확인
로컬 PC에서 해당 IP 로 접속해서 로컬에서 처럼 Hello World! 가 나오는지 확인.
끝.
'AWS' 카테고리의 다른 글
AWS Machine Learning Products 개요(2021 08 15 기준) (0) | 2022.11.11 |
---|---|
AWS Sagemaker Notebook에서 git 연결 문제(?) (0) | 2022.05.14 |
AWS CLI 설치 방법 on Mac (0) | 2021.08.08 |
AWS CodeCommit 사용 설정 방법 (0) | 2021.08.08 |
AWS 제품 개요 정리 (Category and Products) (0) | 2021.08.08 |