[Docker] Spring Boot 프로젝트 도커에 배포하기

Wonjun Seo·2024년 3월 29일
0

Docker Desktop

도커는 컨테이너 기술을 통해 애플리케이션을 보다 편리하게 배포 할 수 있는 기술이다. 애플리케이션을 이미지(컨테이너 실행에 필요한 명세)화하여 어느 환경에나 동일하게 실행할 수 있다.

Docker Desktop은 로컬 환경에서 도커의 이미지나 애플리케이션, 컨테이너 등을 편리하게 관리할 수 있도록 도와주는 프로그램이다.

https://www.docker.com/products/docker-desktop

Docker 홈페이지에서 Docker Desktop을 다운받아 실행해준다.


Docker 이미지 생성

Docker 파일 작성

# Base 이미지 설정
FROM maven:3.8.4-openjdk-17-slim AS build

# 애플리케이션을 빌드할 디렉토리 생성
WORKDIR /[WORK_DIR]

# 소스 코드 복사
COPY . .

# 애플리케이션 빌드
RUN mvn package -DskipTests

CMD ["java", "-jar", "/[PROJECT_NAME]/target/ROOT.jar"]

스프링부트 프로젝트에 Dockerfile을 생성한다.


JAR 파일 생성

Maven > Lifecycle > Clean 후 Package


Docker에 이미지 저장

> docker build -t [IMAGE_NAME]

Powershell에서 Docker 파일이 작성된 경로로 이동하고, 해당 명령어를 실행한다.


생성된 이미지 확인

> docker images

이미지를 tar 파일로 저장

> docker save -o [TAR_NAME].tar [IMAGE_NAME]

도커에 있는 이미지를 tar 파일로 가공하고 싶으면 위 명령어를 실행한다.


Docker 컨테이너 실행

현재 컨테이너 중지

> docker stop [CONTAINER_NAME]

현재 실행중인 컨테이너를 중지시킨다.


이미지 삭제

> docker rmi [IMAGE_NAME]

현재 저장된 도커 이미지를 삭제한다.


tar 파일을 도커 이미지로 저장

> docker load -i [TAR_NAME].tar

로컬에 있는 tar 파일을 도커에 불러와서 이미지를 저장한다.


컨테이너 실행

> docker run -d -p [HOST_PORT]:[CONTAINER_PORT] -e LANG=ko_KR.UTF-8 -e TZ=Asia/Seoul 
-v /var/C:/[MOUNT_DIR]/C --rm --name [CONTAINER_NAME] [IMAGE_NAME]:latest

저장된 도커 이미지를 실행한다.

실행할 때 다음과 같은 옵션을 설정할 수 있다.

  • -d는 컨테이너가 백그라운드에서 실행되도록 해준다.
  • -p를 사용하여 포트를 지정해준다.
  • -e를 사용하여 환경변수를 설정해준다.
  • -v는 호스트와 컨테이너간에 볼륨을 마운트한다.
  • --name을 사용하여 컨테이너 이름을 지정해준다.

컨테이너 확인

> docker ps

컨테이너 실행 후 도커에 실행중인 컨테이너 목록을 확인한다.

0개의 댓글