Spring/Cloud

[Spring Cloud] Docker - 이미지 생성

RoyOps 2022. 5. 5. 13:52

이전 장(링크) 에서는 도커란 무엇인가도커 설치 방법에 대해서 알아보았다.
이번 장에서는 도커 이미지를 생성하고 실행하는 방법에 대해서 알아본다.
모든 소스 코드는 깃 허브 (링크) 에 올려두었다.


Docker 실행

우리의 마이크로서비스가 사용하고 있는 MariaDB를 도커 이미지로 실행하는 방법에 대해서 알아본다.

  1. 이미지 확인

hub.docker.com에 접속하여 우리가 사용하려는 이미지 파일을 확인한다.

  1. 이미지 다운로드(생략 가능)

아래의 커맨드를 입력하여 도커 이미지를 다운로드 한다.
컨테이너를 실행할 때 PC가 없다면 자동으로 다운로드 하지만 이번에는 단계를 나누어 진행한다.

$ docker pull mariadb

아래의 커맨드를 입력하여 도커 이미지 목록을 확인한다.

$ docker images

  1. 컨테이너 실행

아래의 커맨드를 입력하여 도커 컨테이너를 실행한다.

$ docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mariadb mariadb

아래의 커맨드를 입력하여 컨테이너 목록을 확인한다.

$ docker ps

도커를 실행할 때 사용하는 옵션에 대한 정보는 공식 홈페이지나 아래의 이미지를 참고한다.

  1. 컨테이너 접속 (단순 접속 확인, 실행 과정과 무관)

아래의 커맨드를 입력하여 도커 컨테이너에 접속하여 정상적으로 실행되었는지 DB 클라이언트를 통해 접속해본다.

$ docker exec -it mariadb bash

  1. 도커 로그 확인 (단순 로그 확인, 실행 과정과 무관)

아래의 커맨드를 실행하여 도커의 로그를 확인해본다.

$ docker logs -f mariadb


이미지 생성

우리의 마이크로서비스중 유저 서비스를 도커 이미지로 만드는 방법에 대해서 알아본다.

  1. Dockerfile 생성

target 디렉토리가 있는 경로에 아래와 같이 Dockerfile을 생성한다.

FROM openjdk:17-ea-11-jdk-slim
VOLUME /tmp
COPY build/libs/user-service-1.0.jar UserService.jar
ENTRYPOINT ["java", "-jar", "UserService.jar"]
  1. jar build

유저 서비스 디렉토리에서 아래의 커맨드를 입력하여 jar파일을 생성한다.

$ gradle build

~/user-service/build/lib 경로에 user-service-1.0.jar 파일이 생성된 것을 확인한다.
여기서 버전 정보는 build.gradle에 있는 버전 정보를 따라가므로 설정 정보에 따라 다를 수 있다.

  1. docker build

아래의 커맨드를 입력하여 도커 이미지를 생성한다.

$ docker build --tag roy-msa/user-service:1.0 .

아래의 커맨드를 입력하여 이미지 목록에 우리가 생성한 이미지가 있는지 확인한다.

$ docker images


이번 장에서는 docker-hub에 업로드 되어 있는 mariadb 이미지 파일을 다운받아서 실행시키는 방법과 우리의 유저 서비스를 도커 이미지로 만들고 실행시키는 방법에 대해서 알아보았다.


참고한 강의: