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
반응형
'강의 > Docker & Kubernetes : 실전 가이드' 카테고리의 다른 글
[32] 인터렉티브 모드로 들어가기 (0) | 2025.02.15 |
---|---|
[29, 30] Attached & Detached 컨테이너 이해하기 (0) | 2025.02.15 |
[25] 이미지는 읽기 전용 (0) | 2025.02.14 |
[23] 자체 이미지를 기반으로 컨테이너 실행하기 (0) | 2025.02.14 |
[21, 22] 우리의 목표 : NodeJS 앱 (0) | 2025.02.13 |
댓글