강의/Docker & Kubernetes : 실전 가이드

[26] 이미지 레이어 이해하기

JJIMJJIM 2025. 2. 14. 23:00
728x90
반응형
SMALL

 

도커 이미지의 레이어 아키텍처 이해하기\

이미지 레이어 이해하기

 

 

레이어 기반 아키텍처

기본 개념

  • 각 Dockerfile 명령어는 하나의 레이어 생성
  • 레이어는 순차적으로 쌓임
  • 한번 생성된 이미지는 읽기 전용

캐싱 시스템

  • 도커는 각 레이어의 결과를 캐시
  • 변경되지 않은 레이어는 캐시 사용
  • 변경된 레이어부터 모든 후속 레이어 재실행

 

최적화 예시

비효율적인 방식

FROM node
WORKDIR /app
COPY . /app
RUN npm install

문제점

  • 코드 변경시 npm install도 재실행
  • 불필요한 빌드 시간 증가

 

최적화된 방식

FROM node
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app

장점

  • 종속성 설치 레이어 분리
  • 소스 코드 변경시 npm install 스킵
  • 빌드 시간 단축

 

레이어 동작 방식

캐시 사용 시

  • 변경 없는 경우 Using cache 메시지
  • 빠른 빌드 속도
  • 모든 레이어 캐시 사용

레이어 변경 시

  • 변경된 레이어부터 재실행
  • 후속 레이어도 모두 재실행
  • 캐시 부분 사용

 

최적화 전략

변경 빈도 고려

  • 자주 변경되는 레이어는 나중에 배치
  • 안정적인 레이어는 먼저 배치

종속성 관리

  • package.json 먼저 복사
  • node_modules 설치
  • 소스 코드 나중에 복사

캐시 활용

  • 효율적인 레이어 구성
  • 불필요한 재빌드 방지
  • 빌드 시간 최적화

 

이러한 레이어 기반 아키텍처를 이해하고 활용하면 더 효율적인 도커 이미지 관리가 가능합니다.

 

 

 

참고

https://www.udemy.com/course/docker-kubernetes-2022

 

728x90
반응형
LIST