도커 이미지 크기 10배 줄인 비결

최적화 전 상태 일반적인 Node.js 애플리케이션의 도커파일은 다음과 같다. 1 2 3 4 5 FROM node:18 WORKDIR /app COPY . . RUN npm install CMD ["npm", "start"] 이 이미지의 크기는 1GB를 넘는다. 주된 원인은 다음과 같다: 무거운 베이스 이미지 개발 도구 포함 불필요한 파일 존재 캐시 파일 누적 최적화 기법 1. 멀티 스테이지 빌드 적용 빌드 단계와 실행 단계를 분리한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 빌드 스테이지 FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build # 실행 스테이지 FROM node:18-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/package*.json ./ RUN npm install --production CMD ["npm", "start"] 2. 알파인 리눅스 사용 알파인 리눅스는 기본 이미지 크기를 크게 줄인다. ...

2월 17, 2025 · 3 분 · 535 단어 · In-Jun Hwang

도커 이미지 레이어의 이해

레이어의 개념과 구조 도커 이미지는 여러 개의 읽기 전용 레이어로 구성된다. 각 레이어는 도커파일의 명령어로 인한 파일 시스템의 변경사항을 저장한다. 이는 Git의 커밋과 유사하다. 변경된 내용만을 저장하여 효율성을 높인다. 도커는 유니온 파일 시스템을 사용하여 여러 레이어를 하나의 파일 시스템으로 마운트한다. 마지막 레이어 위에는 읽고 쓸 수 있는 컨테이너 레이어가 추가된다. 이는 마치 여러 장의 투명 필름을 겹쳐놓은 것과 같다. 레이어의 동작 방식 도커파일의 각 명령어는 새로운 레이어를 생성한다. 간단한 예시를 통해 살펴보자. ...

2월 17, 2025 · 3 분 · 451 단어 · In-Jun Hwang