개발 학습일지(TIL)

TIL : Docker명령어-AWS ECR 이미지 Pull 뒤 컨테이너로 실행

Veams 2023. 10. 6.

예를 들어서,

리눅스 기반의 AWS EC2 혹은 Azure 가상 머신을 만들고, Docker까지 설치를 마쳤다고 가정하자.

 

ECR에 push 된 컨테이너 이미지를 다운받아 사용할 때 거치는 절차와 필요한 명령어는 다음과 같다.

 

1. AWS CLI를 설치 후 AWS CLI 구성하기

 

다음 명령어 입력 후 요구에 따라 access key, secret key 순차 입력

aws configure

 

2. Docker 인증 정보 입력

aws ecr get-login-password --region [이미지가 저장된 region 입력] | sudo docker login --username AWS --password-stdin [ECR URI]

 

예를 들어서

aws ecr get-login-password --region ap-northeast-2 | sudo docker login --username AWS --password-stdin 333322221111.dkr.ecr.ap-northeast-2.amazonaws.com

 

 

3. 이미지 pull

docker pull [이미지 URI]

 

AWS ECR > 리포지토리 에 접속 후

다운 받으려는 '이미지 URI 복사'하여 위 명령어의 [이미지 URI]란에 입력하면 됨

 

예를 들어서 나는 이런 식이다

docker pull 333322221111.dkr.ecr.ap-northeast-2.amazonaws.com/blog-service:latest

 

 

3. 이미지 및 컨테이너 목록 확인 

docker images로 보유하고 있는 이미지 목록 확인 
docker ps로 실행 중인 컨테이너 목록 확인

 

 

4. 이미지에 별칭(태그) 붙이기(선택 사항)

ECR에서 PULL 받을 경우 이미지 이름이 길다. 때문에 별칭을 붙일 수도 있다.

docker tag [리포지토리 URI] [명명할 별칭]

 

docker tag 333322221111.dkr.ecr.ap-northeast-2.amazonaws.com/blog-service:latest blog-app-runner:latest

 

간단하게 ID를 활용하여 별칭을 붙이는 게 나을 수도 있다.

docker tag [Image ID] [명명할 별칭]

 

목록에 이미지가 하나가 더 생긴 것처럼 보이지만 실제로 보유한 이미지가 추가되진 않았다.

별칭을 삭제하고 싶다면 명령어는 docker rmi [삭제할 이미지 별칭]

 

5. 이미지를 백그라운드에서 컨테이너로 실행 

백그라운드에서 실행하려면(터미널 종료가 되어도 실행) -d 혹은 -detach 옵션을 붙인다.

docker run -d [이미지 이름]:[태그]
혹은
docker run -d [이미지ID]

*만약 포트도 설정한다면
docker run -d -p 클라이언트 접속 포트 : 컨테이너 포트 [이미지 ID]

만약 백그라운드가 아닌 포어그라운드(터미널 종료시 컨테이너도 동시 종료)에서 실행하고 싶다면

위 명령어에서 -d를 빼면 된다

docker run -p 클라이언트 접속 포트 : 컨테이너 포트 [이미지 ID]

 

6. 컨테이너 실행 중단

docker ps로 실행중인 컨테이너 목록 확인 뒤 

docker stop [컨테이너 ID]

댓글