이 글은 인프런의 개발자를 위한 쉬운도커(데브위키) 강의를 수강하고 개인적으로 정리하는 글임을 알립니다.도커 이미지이미지는 애플리케이션을 실행하기 위한 모든 파일, 라이브러리, 설정을 미리 포함한 패키지라고 생각하면 된다. 이미지는 변하지 않는 읽기 전용 파일 시스템으로 구성되며, 이를 기반으로 컨테이너를 생성하고 실행한다.도커의 이미지는 애플리케이션과 그 실행에 필요한 모든 요소를 포함한 애플리케이션 실행 패키지이다.이미지는 읽기 전용으로 유지되며, 컨테이너를 생성할 때 이 이미지를 기반으로 애플리케이션을 실행한다.여러 계층으로 구성되어 있어 효율적으로 관리할 수 있으며, 이미지를 공유하고 재사용할 수 있다.애플리케이션 패키지이미지에는 특정 애플리케이션을 실행하기 위해 필요한 모든 것이 들어 있다. 예..
이 글은 인프런의 개발자를 위한 쉬운도커(데브위키) 강의를 수강하고 개인적으로 정리하는 글임을 알립니다.하이퍼바이저 가상화가상 머신(Virtual Machine)두 개의 가상 머신이 물리적 서버에서 실행되고 있으며, 각각 리눅스(Linux)와 맥(MacOS) 운영체제를 사용하는 게스트 OS(Guest OS)를 가지고 있다.가상 머신은 각기 독립적인 프로세스를 실행하고, 리소스(예: CPU, 메모리, 저장공간)를 할당받아 운영된다.각 게스트 OS는 자체 커널(Kernel)을 가지고 있으며, 사용자 프로세스는 이 커널을 통해 시스템 자원에 접근하게 된다. 하이퍼바이저(Hypervisor)가상 머신들을 관리하는 소프트웨어 계층이다.하이퍼바이저는 물리적 서버 자원을 추상화하여 각 가상 머신에 필요한 리소스를 할..
서버 환경 : Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1012-aws x86_64)MySQL : 8.0.32스프링부트 : 3.3.3Redis : latest(24.8.26 기준) EC2에 Docker, Docker Compose 설치sudo apt-get update && \sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \sudo apt-key fingerprint 0EBFCD88 && \sudo add-apt-rep..
주의사항Docker Hub의 최신버전 MySQL은 9.x 버전이다.그런데 현재 24.8.25일 기준 최신 스프링부트 버전인 3.3.3은 MySQL 9.x 버전을 지원하지 않는다.따라서 MySQL의 모든 버전은 8.0.32 버전으로 맞추었다. 스프링부트 설정build.gradledependencies {...implementation 'org.springframework.boot:spring-boot-starter-data-redis'implementation("org.springframework.boot:spring-boot-starter-data-jpa")implementation 'mysql:mysql-connector-java:8.0.32'} application.propertiesspring.d..
1. DockerFile 작성 생성한 도커파일에 아래와 같은 내용을 작성해준다.FROM openjdk:17-jdkWORKDIR /spring-bootCOPY build/libs/*SNAPSHOT.jar app.jarENTRYPOINT ["java", "-jar", "/spring-boot/app.jar"]FROM openjdk:17-jdk-Docker 이미지를 생성할 때 기본으로 사용할 베이스 이미지를 설정하는 명령어이다.-이 경우, openjdk:17-jdk 이미지를 사용하여 JDK(Java Development Kit) 17이 설치된 환경에서 애플리케이션을 실행할 수 있도록 한다.-OpenJDK는 자바 애플리케이션을 실행하는 데 필요한 런타임 환경을 제공한다.WORKDIR /spring-boot-Do..