Oh My Algorithm
Concept GuideUnion FS · 레이어 캐시

이미지 레이어 (Image Layers)

Docker 이미지는 하나의 통짜 파일이 아니라 읽기 전용 레이어를 겹겹이 쌓은 구조입니다. Dockerfile의 명령 하나가 레이어 하나를 만들고, 실행 시 그 위에 쓰기 가능한 컨테이너 레이어가 얹혀 하나의 파일시스템처럼 보입니다. 레이어는 내용이 같으면 이미지끼리 공유되고 캐시되기 때문에, 명령 순서가 곧 빌드 속도와 이미지 용량을 결정합니다.

01 개념 한눈에 보기

Interactive Step-by-Step
Docker 이미지 레이어 · Union Filesystem
이미지 빌드
✍️5컨테이너 레이어R/W · Copy-on-Write
📄4COPY . .앱 소스 · 12 MB
📦3RUN npm cinode_modules · 180 MB
📋2COPY package*.json의존성 목록 · 4 KB
🏗1FROM node:20-alpine베이스 · 140 MB
이미지 (레이어 1개)
alpine + node
베이스 이미지

Docker 이미지는 하나의 통짜 파일이 아닙니다. 읽기 전용 레이어를 겹겹이 쌓은 구조이고, Dockerfile의 명령 하나가 레이어 하나를 만듭니다.

Logic Node1 / 10

02 쉽게 이해하기

For Everyone
🔑비유

투명 필름을 겹쳐 그림을 완성하는 것과 같습니다. 아래 필름(베이스 이미지)은 그대로 두고 위에 새 필름만 얹으며, 겹쳐 보면 한 장의 그림(파일시스템)으로 보입니다. 중간 필름 한 장을 바꾸면 그 위의 필름들은 전부 다시 그려야 합니다.

💡쉽게 말하면

Dockerfile의 FROM·COPY·RUN 같은 명령이 각각 읽기 전용 레이어를 만들고, 유니온 파일시스템이 이들을 겹쳐 하나로 보여줍니다.

컨테이너를 실행하면 맨 위에 쓰기 가능한 레이어가 추가되고, 변경은 전부 여기에만 기록됩니다(Copy-on-Write).

어떤 레이어가 바뀌면 그 위 레이어의 캐시는 모두 무효화되므로, 자주 안 바뀌는 것(의존성 설치)을 아래에, 자주 바뀌는 것(앱 소스)을 위에 두는 것이 핵심입니다.

📍어디에 쓰나
  • Dockerfile 명령 순서 최적화
  • 빌드 캐시 적중률 높이기
  • 이미지 용량 줄이기
  • 여러 이미지가 베이스 레이어를 공유하는 원리 이해

03 자주 묻는 질문

FAQ
이미지 레이어 (Image Layers)란 무엇인가요?+

Docker 이미지는 하나의 통짜 파일이 아니라 읽기 전용 레이어를 겹겹이 쌓은 구조입니다. Dockerfile의 명령 하나가 레이어 하나를 만들고, 실행 시 그 위에 쓰기 가능한 컨테이너 레이어가 얹혀 하나의 파일시스템처럼 보입니다. 레이어는 내용이 같으면 이미지끼리 공유되고 캐시되기 때문에, 명령 순서가 곧 빌드 속도와 이미지 용량을 결정합니다.

이미지 레이어 (Image Layers)은(는) 어디에 사용하나요?+

Dockerfile 명령 순서 최적화, 빌드 캐시 적중률 높이기, 이미지 용량 줄이기, 여러 이미지가 베이스 레이어를 공유하는 원리 이해

이미지 레이어 (Image Layers)를 쉽게 비유하면?+

투명 필름을 겹쳐 그림을 완성하는 것과 같습니다. 아래 필름(베이스 이미지)은 그대로 두고 위에 새 필름만 얹으며, 겹쳐 보면 한 장의 그림(파일시스템)으로 보입니다. 중간 필름 한 장을 바꾸면 그 위의 필름들은 전부 다시 그려야 합니다.

Guide Progress0%