Dockerizing Spring Boot Application

2020. 10. 4. 02:33클라우드/Docker

앞서 만든 Docker파일을 빌드해서 이미지를 만든다.

$ docker build -t to-do-springboot .
Sending build context to Docker daemon    212MB
Step 1/7 : FROM adoptopenjdk/openjdk11:alpine
alpine: Pulling from adoptopenjdk/openjdk11
df20fa9351a1: Pull complete 
229610c13af7: Pull complete 
53a69ff98873: Pull complete 
Digest: sha256:ffa9f929a59f305f72bf2ccf54885caa0044eb9c7c5b61d38a96a5815c20e21f
Status: Downloaded newer image for adoptopenjdk/openjdk11:alpine
 ---> 6b1ec1e25ce8
Step 2/7 : LABEL maintainer="narae456@gmail.com"
 ---> Running in f9426da31179
Removing intermediate container f9426da31179
 ---> 35a6affef99d
Step 3/7 : VOLUME /tmp
 ---> Running in 0adce4a804f4
Removing intermediate container 0adce4a804f4
 ---> a496c7feb91c
Step 4/7 : EXPOSE 8080
 ---> Running in 6e2fd19f6fe6
Removing intermediate container 6e2fd19f6fe6
 ---> f0384a207bee
Step 5/7 : ARG JAR_FILE=build/libs/todo-0.0.1-SNAPSHOT.jar
 ---> Running in 4ce8d200eed6
Removing intermediate container 4ce8d200eed6
 ---> 6f4bdeaaa120
Step 6/7 : ADD ${JAR_FILE} to-do-springboot.jar
 ---> 39f713455d10
Step 7/7 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/to-do-springboot.jar"]
 ---> Running in 2e8d6d0100b1
Removing intermediate container 2e8d6d0100b1
 ---> 7efbe5224c1f
Successfully built 7efbe5224c1f
Successfully tagged to-do-springboot:latest

Successfully tagged...로 끝나면 이미지 생성을 성공한 것이다.

 

 

Docker Desktop

$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
to-do-springboot         latest              7efbe5224c1f        6 minutes ago       368MB
adoptopenjdk/openjdk11   alpine              6b1ec1e25ce8        2 months ago        342MB
hello-world              latest              bf756fb1ae65        9 months ago        13.3kB
mysql                    5.7.19              3e3878acd190        2 years ago         412MB

도커 데스크탑 어플리케이션이나 images 명령어로 이미지 목록을 확인해보면

내가 만든 이미지 to-do-springboot가 생긴 것을 확인할 수 있다.

 

 

$ docker run -p 5000:8080 to-do-springboot

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.4.RELEASE)

.
.
.

run 명령어로 컨테이너를 실행하면 gradle bootRun 했을 때와 같은 로그화면이 뜬다.

5000:8080 도커에서 5000번 포트로 받은 내용을 -> 어플리케이션의 8080 포트로 보낸다는 뜻

이렇게 하면 로컬에서 개발 할 때에는 8080 포트를 사용하고, 도커에 올리고 나서는 5000 포트를 사용할 수 있다.

 

5000번으로 받았으니 http://localhost:5000/ 으로 접속하면 서비스를 확인할 수 있다.

 

 

 

 

'클라우드 > Docker' 카테고리의 다른 글

Dockerfile의 ADD와 COPY의 차이  (1) 2020.10.17
Docker Compose  (0) 2020.10.17
Dockerfile  (0) 2020.10.04
hello world  (0) 2020.10.04
Docker Image  (0) 2020.10.01