[AWS] ECR 생성 및 이미지 업로드

on_cloud·2023년 3월 26일
0

AWS

목록 보기
3/13
post-thumbnail

ECR이란?


컨테이너 이미지를 저장, 관리, 배포할 수 있는 레지스트리 서비스


기본세팅


AWSCLIv2를 설치해줍니다.

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
ln -s /usr/local/bin/aws /usr/bin/
ln -s /usr/local/bin/aws_completer /usr/bin/

Docker를 설치합니다.

yum install -y docker
systemctl enable --now docker
usermod -aG docker ec2-user
usermod -aG docker root
chmod 666 /var/run/docker.sock

python code


#!/usr/bin/python3
from flask import Flask, abort, request, jsonify

app = Flask(__name__)

@app.route('/health', methods=['GET'])
def get_health():
  try:
    ret = {'status': 'ok'}

    return jsonify(ret), 200
  except Exception as e:
    logging.error(e)
    abort(500)

if __name__ == "__main__":
  app.run(host='0.0.0.0', port=8080)

ECR 생성


aws ecr create-repository --repository-name <ECR name> --image-tag-mutability MUTABLE --region <region>

Dockerfile 생성


  1. Dockerfile을 작성합니다.
FROM ubuntu:latest

WORKDIR /app
COPY ./app.py .
RUN apt update -y
RUN apt install -y curl
RUN apt install -y python3-pip
RUN pip3 install flask
EXPOSE 8080
	
CMD ["python3", "app.py"]
  1. Dockerfile을 build 후 image를 생성합니다.
docker build -t <image name> .
  1. image가 생성됐는지 확인합니다.
docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
<ECR image>   latest    9475526dfbc6   30 minutes ago   476MB
ubuntu        latest    08d22c0ceb15   2 weeks ago      77.8MB
  1. ECR에 로그인 해줍니다.
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account id>.dkr.ecr.<region>.amazonaws.com
  1. image에 태그를 달아줍니다.
docker tag <ECR name>:latest <account id>.dkr.ecr.ap-northeast-2.amazonaws.com/<ECR name>:latest
  1. ECR에 image를 업로드해줍니다.
docker push <account id>.dkr.ecr.ap-northeast-2.amazonaws.com/<ECR name>:latest

0개의 댓글