brunch
매거진 배포

도커를 사용한 배포 단계 정리

AWS EC2

by 내가 사는 세상

(at CMD) EC2 접속

CMD에서 키(.pem)파일이 있는 위치에 들어간 뒤, 아래의 명령을 친다. CMD가 아니라 putty도 활용가능하다.

C:\>ssh -i 키이름.pem ubuntu@ec2-12-345-67-890.ap-northeast-2.compute.amazonaws.com



(at EC2) 리눅스 속 도커 컨테이너 상태 확인

ubuntu@ip-123-45-67-890:~$ sudo docker ps



(at EC2) 컨테이너 내리기

ubuntu@ip-123-45-67-890:~$ sudo docker stop $(sudo docker ps -a -q)



(at 데스크탑) 로컬에서 소스코드가 들어간 압축파일 만들기

C:\service\iintheworld>git archive --format tar --output ./project.tar main



(at 리눅스(EC2) tmp 폴더) FileZilla를 활용하여 tar파일 업로드

로컬의 압축파일(project.tar)을 리눅스 서버에 복사

참고) 권한문제가 생긴다면 'sudo chmod -R 777 /폴더명' 명령 활용



(at 리눅스(EC2)) 압축파일 압축해제

tar폴더의 압축파일을 app폴더로 압축해제 후 이동

ubuntu@ip-123-45-67-890:~$ sudo rm -rf /app/* && sudo tar -xf /tmp/project.tar -C /app



(at 리눅스(EC2)) .env폴더 FileZilla를 활용하여 리눅스(EC2)에 업로드

업로드할 위치는 기존 로컬에서의 코드 구조와 동일하게끔.

참고) 권한문제가 생긴다면 'sudo chmod -R 777 /폴더명' 폴더 접근 권한 변경 명령 활용



(at 리눅스(EC2)) yml파일을 활용하여 컨테이너 배포

ubuntu@ip-123-45-67-890:~$ sudo docker compose -f /app/prod-aws.yml up --build -d --remove-orphans


(at 리눅스(EC2)) logs 폴더 만들기



도커 볼륨 삭제 방법

이름으로 일일히 지워야



sudo docker system prune -a 하면 캐시된 것도 사라짐

keyword
매거진의 이전글도커 컨테이너 DB 접속