[Springboot + Docker] spring boot 프로젝트 도커 이미지로 빌드

Kim Dae Hyun·2021년 8월 17일
1

Docker

목록 보기
4/7

🔎 빌드할 간단한 spring boot 프로젝트

프로젝트 생성

의존성으로는 Spring Web 하나만 넣어주었습니다.

도커 이미지 빌드가 목적이므로 기능은 신경쓰지 않을께요.
그래도 확인은 해야하니 간단한 api를 만들어 줍니다.
/hello 로 접근시 hello를 리턴하는 api입니다.

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }
}

🔎 Dockerfile 작성

프로젝트의 root경로에 Dockerfile 이라는 이름으로 파일을 생성하여 아래 스크립트를 설정해줍니다.


🔎 프로젝트 Build

컨테이너에서 사용할 jar 파일, 빌드파일을 생성합니다.
저는 maven을 사용하고 있으므로 mvn 명령어를 사용합니다.

package 명령어는 컴파일 수행 후 pom.xml에 설정된 패키징 양식에 맞추어 패키징까지 해줍니다.
mvn package or mvn clean package

위 명령어를 입력하면 target 폴더가 생성됩니다.

테스트를 위해 빌드된 jar 파일로 서버를 구동시켜볼께요.
java -jar deploy-0.0.1-SNAPSHOT.jar


🔎 도커 이미지 Build

이제 도커 컨테이너에 올려줄 빌드 파일(jar)가 만들어졌으니 도커 이미지 빌드를 시작할께요.
도커 설치와 도커허브 가입은 굉장히 간단하니 스킵할께요 !

이미지 빌드 명령어
docker build -t [dockerID/dockerHubRepository이름] .

이미지가 생성된 것을 확인할 수 있습니다. (docker images)


🔎 도커 허브에 이미지 push

우선 도커 허브에 repository를 생성합니다.

docker push [이미지명/레포지토리명]

도커 허브에 이미지가 잘 올라간 것을 확인할 수 있습니다.


🔎 도커 허브에서 이미지 가져와서 컨테이너 구동하기

현재 로컬에는 우리가 만든 도커 이미지가 없습니다.
(있다면 지워주세요. docker rmi [이미지ID or 이미지이름])

도커허브의 이미지로 컨테이너 구동
컨테이너에서 80번 포트로 구동하게 설정하였기 때문에 로컬에서 8080포트로 접근하기 위해 포트매핑 후 컨테이너를 구동시킵니다.
(만약 로컬에 이미지가 없다면 도커허브로부터 image pull 후 컨테이너를 구동합니다.)

docker run -p 8080:8080 도커허브ID/이미지이름


테스트 결과

감사합니다. 😁

profile
좀 더 천천히 까먹기 위해 기록합니다. 🧐

1개의 댓글

comment-user-thumbnail
2021년 8월 17일

잘 배우고 가요!!

답글 달기