본문 바로가기
Docker

Spring boot + Docker linux에 배포

by 옹알이옹 2023. 8. 31.
목차

1. linux 서버(클라우드)에 docker를 이용해 배포하는 과정

2. 배포할 때 주의사항

3. 도커를 이용한 배포에 대한 생각


 1. linux 서버(클라우드)에  docker를 이용해 배포하는 과정

 

상황

spring boot 프로젝트와 mysql을 이미지로 만든 뒤 linux 서버에서 docker-compose를 통해 두 컨테이너를 같이 실행. => 실무에선 was와 db를 같은 서버에서 돌리지는 않지만 테스트를 위해 이렇게 진행함

* 대부분의 자세한 내용은 필자의 Docker 카테고리의 글에 정리되어 있음. 아래 관련글 참고

 

로컬 서버에서의 액션

  1. Dockerfile, docker-compose.yaml 파일 작성
  2. Spring boot project 이미지 생성
  3. 프로젝트 git hub에 push
  4. 생성한 spring boot 이미지를 docker hub에 업로드

linux 서버(클라우드) 에서의 액션

  1. 서버에 도커 설치, docker-compose 설치 => window 로컬 서버와 다르게 docker-compose를 설치해야 함
  2. docker-hub에서 업로드 한 spring boot 이미지 받아오기
  3. github에서 프로젝트 코드 받아오기
  4. 프로젝트 루트 경로로 이동한 후 docker-compose up 실행

실행결과

linux 서버 실행요청성공화면


 2. 배포할 때 주의사항

 

docker hub에 이미지 업로드 할 때 명칭 변경

만약 spring boot 이미지의 이름을 spring-boot-image로 만들었다면 docker-hub에 업로드하기 위해서는
<docker 아이디>/spring-boot-image로 바꾸어주어야 업로드 중 에러가 나지 않는다. 

추가로 docker-compose.yaml에서 이미지의 명칭도 위와 같이 꼭 변경해주어야 한다.


 3. 도커를 이용한 배포에 대한 생각

  • 도커를 통해 WAS에 대한 환경과 mysql 환경을 쉽고 확실하게 구성할 수 있어서 좋았음.
    확실히 도커를 통해 로컬에서 실행이 되면 클라우드서버(linux)에서도 도커를 통한 실행이 보장되었음.
  • 테스트를 위해 naver cloud platform의 무료 서버를 사용하였고, 도커를 설치한 것만으로 느려진 걸로 보아 저스펙 서버에서는 신중히 써야 할 듯 함
  • Jenkins를 같이 사용하지 않는 한 이식성이 좋은 것 말고는 큰 메리트가 있는 거 같지 않음. 오히려 이미지를 업데이트하고 컨테이너를 실행하는 과정이 jar를 새로 묶고 실행시키는 것보다 귀찮음.

 


 관련글

 

Spring boot 도커 파일 생성 및 배포

HTML 삽입 미리보기할 수 없는 소스 1. 도커란 구글에 Docker에 대한 개념 설명이 잘 된 것이 많으므로 정의는 간략하게 정리하고 넘어가겠다.우선 간단하게 도커란 컨테이너 기반 가상화 오픈 소스

tytydev.tistory.com

 

 

Docker compose Spring boot ,mysql 연동 방법

HTML 삽입 미리보기할 수 없는 소스 1. docker-compose 란 docker-compose란 여러 개의 docker-container를 쉽게 관리하고 실행하기 위한 도구이다. 해당 글에서는 spring boot와 mysql을 연동하기 위해 docker-compose를

tytydev.tistory.com

 

반응형