Docker

도커(Docker) 이미지 직접 생성하기(Dockerfile)

10Biliion 2025. 5. 19. 14:20

Dockerfile 작성하기

Docker 이미지를 만들기 위해서는 Dockerfile이라는 파일을 작성해야 합니다. 파일에는 이미지 생성 과정을 정의하는 **명령어(키워드)**들이 포함되어 있습니다.

 

주요 키워드 정리

키워드 설명
FROM 사용할 베이스 이미지지정합니다. 모든 Dockerfile이로 시작합니다.
COPY 로컬 파일을 이미지 안으로 복사합니다. 보통 .jar 파일이나 설정파일 복사 사용합니다.
RUN 이미지 빌드 중에 실행할 명령어입니다. 패키지 설치 초기 설정에 사용됩니다.
WORKDIR 이후 명령들이 실행될 작업 디렉토리지정합니다. cd비슷합니다.
EXPOSE 컨테이너가 사용하는 포트를 명시합니다. (단, 자체로 포트를 열지는 않음)
ENTRYPOINT 컨테이너 실행 실행될 기본 실행 명령어설정합니다. 보통 Java 실행 명령 설정 사용됩니다.
 

 


Spring Boot  이미지 만들기(Dockerfile)

Spring Boot 애플리케이션은 일반적으로 .jar 파일로 패키징됩니다. 파일을 기반으로 Docker 이미지를 생성하려면 다음과 같이 Dockerfile작성합니다.

1. Spring Boot 프로젝트 빌드

./gradlew clean build
# 또는
mvn clean package

빌드 결과물은 보통 build/libs/myapp.jar 또는 target/myapp.jar 위치에 생성됩니다.


2. Dockerfile 작성

# 1. 사용할 베이스 이미지 지정 (Java 런타임 포함)
FROM eclipse-temurin:17-jdk

# 2. 작업 디렉토리 설정
WORKDIR /app

# 3. 빌드된 JAR 파일 복사
COPY build/libs/myapp.jar app.jar

# 4. 컨테이너에서 사용할 포트 명시
EXPOSE 8080

# 5. 애플리케이션 실행 명령 설정
ENTRYPOINT ["java", "-jar", "app.jar"]

💡 eclipse-temurin:17-jdkOpenJDK 17포함한 공식 이미지입니다. 필요에 따라 openjdk:17, amazoncorretto:17 등으로 변경 가능.


3. Docker 이미지 빌드 실행

# 이미지 빌드
docker build -t my-springboot-app .

# 컨테이너 실행
docker run -p 8080:8080 my-springboot-app

-p 8080:8080로컬의 8080 포트를 컨테이너의 8080 포트에 매핑합니다.


 

 

단계 설명
1 애플리케이션을 .jar빌드
2 Dockerfile 작성
3 docker build 명령으로 이미지 생성
4 docker run으로 실행

 

 

📚 참고 자료