[BooTakHae] Dockerfile 작성하기

Kim Hyen Su·2024년 8월 22일

BooTakHae

목록 보기
21/22
post-thumbnail

개요

Docker의 개념에 대해서 정리해보고 학습 및 실습을 해봤습니다. 이전까지는 Docker를 모호하게 어려운 개념으로 생각했다면, 이제는 기존의 가상화가 가진 문제점을 해결하고 가볍게 사용할 수 있는 편리한 도구라는 생각이 듭니다.

이번에는 도커 이미지 빌드를 위해 Dockerfile 작성해보겠습니다.

Dockerfile 작성

마이크로서비스 마다 작성되는 형태가 비슷하므로, 하나의 도커파일을 예시로 작성하겠습니다.

FROM openjdk:openjdk:17-ea-11-jdk-slim
VOLUME /tmp
COPY build/libs/user-service-0.0.1-SNAPSHOT.jar user-service.jar
ENTRYPOINT["java","-jar","user-service.jar"]
  • Spring Boot 프로젝트이므로, 자바를 사용하기 위해 기본적으로 JDK17을 기반 이미지로 설정해줍니다.
  • 컨테이너 내 /tmp 경로에 볼륨을 설정하여 저장될 임시파일이 있는 경우 내부에 저장하여 관리해줍니다.
  • 컨테이너 내부에 user-service.jar 라는 이름으로 jar 파일을 복사 저장해줍니다.
  • Docker conainer 시작 시 실행할 명령어를 지정해줍니다.
    • 여기서는 java -jar user-service.jar 명령을 실행하여 JAR 파일을 실행합니다.

이처럼 user 마이크로 서비스를 Docker 이미지로 빌드하기 위해서, 간단한 dockerfile을 작성해봤습니다.

Docker 이미지 빌드

그 다음으로, 도커 이미지를 빌드하겠습니다.

$ docker build -t 도커허브계정명/이미지명:태그

-t 를 통해 이미지명을 설정할 수 있습니다. 그리고 도커허브 계정명을 추가해주지 않는다면, dockerhub에 push 시에 권한이 없다는 오류가 발생합니다.

예를 들어, 필자의 경우 계정명이 kimhyensu 입니다.

따라서, 명령어를 작성하면 다음과 같습니다.

$ docker build -t kimhyensu/user-service:1.0

DockerHub에 psuh

$ docker push 이미지명

마지막으로 위와 같이 dockerhub에 이미지를 push 해주면 됩니다.

마무리

다음에는 위처럼 도커허브에 push된 이미지들을 한번에 다중 컨테이너로 관리하기 위해서 docker-compose.yml 을 작성하여 실행해보는 과정에 대해서 학습하겠습니다.

profile
백엔드 서버 엔지니어

0개의 댓글