개발/강의

인프런 : Dockerfile 3

EJ EJ 2025. 4. 11. 19:47

Dockerfile이란?

Docker 이미지는 Dockerhub을 통해 다운받아서 사용할 수 있다. 이 Docker 이미지들도 누군가 만들어서 Dockerhub에 올려놓은 것이다. 그럼 도대체 이 Dcoker 이미지는 어떻게 만드는 걸까? Dockerfile을 활용하면 나만의 Docker 이미지를 만들 수 있게 된다.

정리하자면, Dockerfile이란 Docker 이미지를 만들게 해주는 파일이다.

 

[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기

인텔리제이에서 코드 작성 후

package com.example.inflearn;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AppController {
    @GetMapping("/v1")
    public String home() {
        return "Hello, 인프런!";
    }
}

 

터미널에서 Spring Boot 프로젝트 빌드 진행

(개발자가 작성한 코드(사람이 이해하는 언어)를 → 컴퓨터가 이해할 수 있는 형태로 바꾸는 과정이 바로 "빌드")

./gradlew clean build

(SNAPSHOT.jar 파일 생성 완료)

 

메인 프로젝트에서 Dockerfile 생성하고 코드 작성

FROM openjdk:17-jdk

COPY build/libs/*SNAPSHOT.jar app.jar

ENTRYPOINT ["java", "-jar", "/app.jar"]

 

이후 다시 Spring Boot 프로젝트 빌드 진행

./gradlew clean build

 

Dockerfile을 바탕으로 이미지 빌드하기(생성하기)

# docker build -t [이미지명(본인 작성)]:[태그명] [Dockerfile이 존재하는 디렉터리 경로]
태그명을 적지 않으면 latest로 설정된다.


docker build -t hello-server .

 

이미지가 잘 생성됐는지 확인하기

docker image ls

 

생성한 이미지를 컨테이너로 실행시켜보기

docker run -d -p 8080:8080 hello-server

 

컨테이너 잘 실행되고 있는 지 확인하기

docker ps

 

크롬에서 http://localhost:8080/v1 접속해 보기

실행시킨 컨테이너 중지 / 삭제하기, 이미지 삭제하기

docker stop [컨테이너 ID 또는 컨테이너명]
docker rm [컨테이너 ID 또는 컨테이너명]

docker rm -f [컨테이너 ID 또는 컨테이너명] 
종료와 삭제를 동시에 진행

docker image rm [이미지 ID]

 

'개발 > 강의' 카테고리의 다른 글

인프런 : Docker 6 - AWS ECR  (0) 2025.04.14
인프런 : Docker Copmose 5  (0) 2025.04.14
인프런 : Docker Copmose 4  (0) 2025.04.12
인프런 : Docker Volume 2  (0) 2025.04.11
인프런 : Docker 1  (0) 2025.04.10