본문 바로가기

Docker

Docker 설치 및 환경 설정

728x90
Docker

1. Docker 설치

https://docs.docker.com/desktop/install/mac-install/

 

Install Docker Desktop on Mac

Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

https://docs.docker.com/desktop/install/windows-install/

 

Install Docker Desktop on Windows

Get started with Docker for Windows. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

 

2. Docker Installer 실행 → 재시작 → Accept

모두 설치 완료 후 강제 Restart가 되기 때문에 다른 프로그램들 저장을 잘 해둘 것

 

3. 권장되는 설정으로 PC 비밀번호를 이용한 접근이 가능하도록 구성

4. Docker 회원 가입 및 로그인

 

5. 터미널에서 Docker 설치 확인


Spring Boot

1. 스프링 부트 프로젝트 생성

  • 간단한 테스트로 Dependency는 Spring Web 한 개만 추가

 

 

2. RestController로 간단한 엔드포인트 설정

package com.example.simplespringboottest;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @GetMapping("/api/test/hello")
    public ResponseEntity<String> test(){
        String str = "Docker Test Success";
        return new ResponseEntity<>(str, HttpStatus.OK);
    }
}

 

 


Spring Boot + Dockerfile : 구성하기

1. Dockerfile 생성

  • root 경로에 생성하여 build.gradle들과 같은 레벨에 위치

 

2. Dockerfile 구성

  • 다음의 명령어는 외울 필요 없이 챗봇이나 검색하여 사용
  • VOLUMN 명령어를 사용해야 추후 Docker Container를 삭제했을 때 DB에 저장된 정보들을 유지할 수 있음
# 1. 베이스 이미지 지정
FROM openjdk:17-jdk-alpine

# 2. 작업 디렉토리 설정
WORKDIR /app

# 3. 환경 변수 설정
ARG JAR_FILE=build/libs/*.jar

# 4. 빌드된 JAR 파일을 컨테이너로 복사
COPY ${JAR_FILE} /app/myapp.jar

# 5. JAR 파일 실행 명령어 설정
ENTRYPOINT ["java", "-jar", "/app/myapp.jar"]

 

 

  • 베이스 이미지 지정 가장 뒤의 설정
    • java:<version>
      • 표준 자바 Docker 이미지, 모든 Java 기능 포함
    • java:<version>-alpine
      • 리눅스 기반의 자바 Docker 이미지, 이미지 크기를 최소화
      • 표준 이미지에 비해 빌드, 배포 속도가 약 20%가량 빠름
      • 단, 모든 Java 기능을 포함하고 있지 않을 수 있음
    • java:<version>-slim
      • 마찬가지로 이미지 크기를 줄이기 위해 등장, 알파인보다 더 많은 기능을 포함

Spring Boot + Dockerfile : 실행하기

1. Spring Boot 빌드

 

2. Docker Image 생성

# docker build -t <컨테이너명> .
docker build -t simple-springboot-test-app .

온점( . ) ⇒ 현재 경로에 있는 docker 파일 build


  • Docker에 Image 추가된 것 확인

 


주의 사항
  • 빌드를 하지 않으면 .jar 파일이 존재하지 않아 다음과 같은 에러 발생

 

3. 컨테이너 실행

# format
# docker run -d --name <컨테이너 이름> -p 8080:8080 <실행할 이미지 이름>

# 컨테이너 생성 및 실행
docker run -d --name docker-test-container -p 8080:8080 simple-spring-boot-app
명령어 실행

docker run Docker 이미지 실행 명령어
-d 컨테이너를 백그라운드에서 실행하도록 설정
→ 여러 명령어? 로그? 들이 뜨지 않도록 함 -d를 빼고 실행해볼 것
--name <컨테이너 이름> 실행하는 컨테이너 이름 지정
-p loacl port:container port 로컬 포트와 컨테이너 포트 연결

<실행할 이미지 이름> 실행할 Docker 이미지 이름
-p 8080:8080
Spring Boot 애플리케이션이 Docker 컨테이너 내부에서 8080 포트로 실행되고 있을 때, 브라우저에서
http://localhost:8080으로 접근하면 로컬 PC의 8080 포트로 트래픽이 전달되고, 이 트래픽이 Docker 컨테이너 내부의 8080 포트로 전달되어 애플리케이션에 도달된다고 함


 

 

4. Postman을 이용하여 API 호출

 

5. Docker Container 종료 후 API 재 호출

 

728x90

'Docker' 카테고리의 다른 글

[Docker Compose] Spring Boot + MySQL + Redis  (0) 2024.08.21
Docker compose 설정 및 각종 테스트  (0) 2024.08.09
Docker란?  (0) 2024.08.08
컨테이너 vs 가상머신(VM)  (0) 2024.08.08