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

    728x90
    반응형

     

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

    이미지 레이어 이해하기

     

     

    레이어 기반 아키텍처

    기본 개념

    • 각 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
    반응형

    댓글