-
Docker 로 SpringBoot 프로젝트 배포하기 - EC2에 Docker 올리고 배포Docker 2023. 10. 30. 22:14
이전 글에서 스프링부트 프로젝트를 jar 파일 빌드, 윈도우에서 Docker 환경 설정, Docker 이미지 생성 및 Push를 했다.
윈도우에서 Docker 환경 설정하기
1. WSL2 활성화 하기 WSL2 는 윈도우에서 리눅스 실행파일을 네이티브로 실행할 수 있게 해준다. Docker Desktop for Windows는 WSL2를 기반으로 만들어졌다. 따라서 WSL2를 미리 활성화 해준다. 우선 명령프
joelinseoul.tistory.com
이번에는 EC2에서 Docker 를 설치하고 배포한다.
EC2 인스턴스의 OS 는 우분투 를 사용했다.
EC2에 Docker 설치하기
1. 우선 패키지 목록을 최신 상태로 업데이트 한다.
sudo apt update
2. 아래 명령어로 https 패키지를 다운받을 수 있도록 한다.sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
3. Docker 의 공식 GPG키를 추가한다.curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/docker-archive-keyring.gpg > /dev/null
4. Docker repository를 추가한다.echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. apt 업데이트sudo apt update
6. docker-ce 설치apt-cache policy docker-ce sudo apt install docker-ce7. docker 설치 완료 후 서비스 상태 확인
sudo systemctl status docker
Active 가 나오면 Docker 가 성공적으로 동작하는 것이다. Docker Hub 에서 Pull 받기
이전 글에서 push 한 Docker 이미지를 pull 받아보자
아래 형태로 명령어를 입력하면 해당 이미지를 내려받게 된다.
sudo docker pull <도커id>/<이미지명>:<태그>
성공적으로 pull 된 이미지 이미지 실행하기
아래의 형태로 run 하면 이미지가 실행된다.
- -d 는 백그라운드에서 애플리케이션을 동작시고자 할 때 입력한다.
- -p 80:8080 는 포트포워딩 옵션이다. 80포트로 들어온 요청을 8080포트로 포워딩 시키는 설정.
- 나는 웹 브라우저로 들어온 요청을 springboot 내장 tomcat 으로 넘겨주고자, -p 80:8080 으로 설정했다.
sudo docker run -d -p 8080:8080 <도커id>/<이미지명>:<태그>
docker 에서 스프링부트가 실행됬다. 이렇게 Docker 를 통한 스프링부트 애플리케이션의 배포가 완료됬다.
기타 docker 명령어
현재 실행중인 컨테이너 목록 확인하기
sudo docker psCONTAINER ID: 컨테이너의 고유 ID
IMAGE: 컨테이너를 생성할 때 사용한 이미지
COMMAND: 컨테이너가 실행하는 명령어
CREATED: 컨테이너가 생성된 시간
STATUS: 컨테이너의 상태
PORTS: 컨테이너가 열어놓은 포트
NAMES: 컨테이너의 이름
1개의 컨테이너가 실행중인 상태
컨테이너 정지하기
sudo docker stop <컨테이너id>현재 실행 중인 컨테이너를 정지하는데 사용됨.
정지되면 정지된 컨테이너의 id를 응답함.
컨테이너 정지하기
컨테이너 시작하기
sudo docker start <컨테이너id>
컨테이너 시작하기
컨테이너 삭제하기sudo docker rm <컨테이너id>
컨테이너 로그 보기sudo docker logs <컨테이너id>로그를 확인할 수 있는 유용한 명령어다.
여기에는 아래의 옵션을 추가하여, 내가 필요한 로그를 확인할 수 있다.
--details: 로그 메시지의 상세 정보를 보여줌.
--follow 또는 -f: 로그를 실시간으로 계속해서 보여줌.
--since <timestamp>: 지정된 시간부터의 로그를 보여줌. <timestamp>는 "10m" (최근 10분), "1h" (최근 1시간), "2013-01-02T13:23:37" (지정된 시간)과 같은 형식을 사용할 수 있음.
--tail <number>: 로그의 마지막 <number>개의 라인만 보여줌.
--timestamps 또는 -t: 각 로그 메시지에 타임스탬프를 추가함.
--until <timestamp>: 지정된 시간까지의 로그를 보여줌. <timestamp>의 형식은 --since 옵션과 같음.
--follow --tail 옵션으로 로그보기 'Docker' 카테고리의 다른 글
Docker 로 SpringBoot 프로젝트 배포하기 - 이미지 빌드 해서 Docker Hub에 푸시 (0) 2023.10.30 Docker 로 SpringBoot 프로젝트 배포하기 - 윈도우에서 Docker 환경 설정하기 (0) 2023.10.30