[Hands-on] Container & Docker

채린·2023년 10월 30일
0

EWHA AWS Cloud Clubs

목록 보기
5/10

사전 준비

  1. Docker Desktop 설치
  2. AWS CLI v2 설치
    macOS:

    curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
    curl 명령을 사용해 AWSCLIV2.pkg이름으로(-o 옵션) 파일을 다운로드

    sudo installer -pkg AWSCLIV2.pkg -target /
    다운로드한 .pkg 파일을 소스로 지정하여 표준 macOS installer 프로그램을 실행
      -pkg + 설치할 패키지의 이름
      -target + 패키지를 설치할 드라이브 지정

    셸이 aws에서 $PATH 명령을 찾아서 실행할 수 있는지 확인:
    which aws
    aws --version
  3. Node js 설치
    참고
  4. git bash 설치 (for git)
    Mac은 기본적으로 설치됨

Container & Docker

  1. Access Key 발급

  2. Credential 등록
    난 이렇게 해도 연결 안돼서 그냥 aws configure

  3. ECR 레포지토리 만들기

  1. Clone repository
    간단한 node 코드가 있는 레포를 git clone

    Docker image로 실행하기 전에 node 로컬 서버 구동 테스트 먼저 해보자 !
    1) Node installation https://nodejs.org/ko/download
    2) Node 서버 구동
         npm i
         nom run start
         웹에서 localhost:8080 접속
  1. Build Docker Image
    ECR login:
    aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin [ECR 레포지토리 URI]

    Docker Image Build:
    docker build -t asc-ewha-docker-prac . >> docker images

  2. Run Docker Container
    ECR에 docker image push하기 전에 먼저 컨테이너가 정상 실행되는지 확인
    docker run --name asc-demo-container -p 8080:8080 asc-ewha-docker-prac
         --name: 컨테이너 이름 지정 (optional)
         -p: 포트 포워딩
    docker psDocker Desktop앱을 통해 정상 가동 되고 있는지 확인

  1. Docker Tag command
    Docker Tag 명령을 실행하는 이유:
    1) ECR에 푸시할 도커 이미지 이름은 <aws_account_ID>.dkr.ecr.<region>.amazonaws.com/<image_name> 형식을 준수해야 하고,
    2) 이미지 버전 관리를 위해 태그를 변경한다.(이번 실습에서는 latest로 진행)
    docker tag asc-ewha-docker-prac:latest [도커이미지이름(레포지토리 URI)]
  1. Push Docker Image ECR에 Docker Image push
    docker push <aws_account_ID>.dkr.ecr.ap-northeast-2.amazonaws.com/asc-ewha-docker-prac:latest

    기존 Docker image모두 삭제
    docker images
    docker rmi <image_name>

  2. Pull Docker Image
    docker pull <aws_account_ID>.dkr.ecr.ap-northeast-2.amazonaws.com/asc-ewha-docker-prac:latest

    docker run -p 8080:8080 [도커이미지이름(레포지토리 URI)]

Error

  • Docker push 할 때 갑자기 EOF -> tag명 컨벤션이 틀렸을 가능성 큼
    ECR에 푸시할 도커 이미지 이름은‘<aws_account_ID>.dkr.ecr..amazonaws.com/<image_name>’ 형식을 준수해야 함
  • ~~docker daemon is not running. -> docker desktop 실행
  • Unable to locate credentials. You can configure credentials by running "aws configure". Error: Cannot perform an interactive login from a non TTY device-> aws configure list, Key가 잘 등록되어 있는지 확인

0개의 댓글