ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] 이미지 생성부터 배포까지 with 스프링부트
    개발/CI CD 2023. 7. 27. 09:28

    도커 사용 이유

    1. 서버확장 효율
      • 어플리케이션 개발 완료 후 버전이 증가할 때 마다 한대의 서버에 가상머신을 사용하여 관리하거나 다수의 물리 서버를 사용하는 경우가 많은데요, 이 때 도커를 사용하면 하나의 서버에서 적은 리소스를 가지고 운영 가능합니다.
    2. 버전관리 용이
      • 버전마다 이미지를 만들기 때문에 버전 관리도 용이합니다.
        ex) 버전 다운그레이드가 용이
    3. 개발환경 통일
      • 개발자가 여러명일 때 이미지를 통해 같은 환경을 만들어 줄 수 있으므로 좋습니다.

    +) ECS/쿠버네티스 사용 이유
    도커 컨테이너 관리를 쉽게 하기 위해

    도커 실습 (스프링부트 배포)

    스프링부트 프로젝트 생성

    • 프로젝트 생성
      • 개발 환경

    intellij 스프링부트 프로젝트 생성 창

    • 컨트롤러 만들기
      • DockerPracticeContainer.java
    package com.example.dockerpractice;
    
    import org.springframework.http.ResponseEntity;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class DockerPracticeContainer {
    
        @GetMapping("/")
        public ResponseEntity<String> hello(){
            return ResponseEntity.ok("Hello Docker-Spring World!");
        }
    
    }

     

    • 실행결과

     

    • 빌드하기

    터미널에서 위 명령어를 입력합니다.
    build/libs 에 .jar파일이 생성된 것을 확인할 수 있습니다.

    깃허브 주소

    https://github.com/ysndy/docker-practice-springboot

     

    이미지 생성

    • 도커 파일 생성
      • Dockerfile.docker
    FROM adoptopenjdk/openjdk11
    
    WORKDIR /usr/src/app
    
    COPY ./build/libs/docker-practice-0.0.1-SNAPSHOT.jar /build/libs/docker-practice-0.0.1-SNAPSHOT.jar
    
    CMD ["java", "-jar", "/build/libs/docker-practice-0.0.1-SNAPSHOT.jar"]

    위 명령어에 대한 자세한 설명은 말랑님 블로그 (https://ttl-blog.tistory.com/761) 에 잘 정리 되어 있습니다.

     

    • 도커 파일 빌드
      • -t 뒤에 [자신의 도커아이디]/이미지 별명 을 추가하여 이미지를 별명으로 다룰 수 있습니다.

     

    • 도커 허브에 업로드
      • 도커 허브에 로그인 한 뒤 이미지 별명과 동일한 이름의 레포지토리를 새로 만듭니다.

    CLI를 통해 Docker hub에 로그인 합니다.

    docker-practice> docker login -u 유저아이디

    로그인하려면 토큰이 필요한데요, 아래 공식 문서를 참고하여 토큰을 생성해줍니다.

    https://docs.docker.com/docker-hub/access-tokens/

     

    docker push 명령어로 레포지토리에 이미지를 업로드합니다.

    docker-practice> docker push ysndy/springbootapp

     

    다음과 같이 도커 hub에서 성공적으로 조회되는 것을 확인할 수 있습니다.

     

    배포

    아래 명령어로 이미지를 도커 허브에서 다운 받고 실행하면 배포 성공입니다!

    docker pull ysndy/springbootapp
    docker run ysndy/springbootapp

     

     

    이미지 파일 만들기
    https://ttl-blog.tistory.com/761
    도커 허브에 올리기
    https://techblog-history-younghunjo1.tistory.com/246

    도커 사용 이유

    https://blog.naver.com/PostView.naver?blogId=suresofttech&logNo=222033411493&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

    https://wooono.tistory.com/133

Designed by Tistory.