이미지 레이어 (Image Layers)
Docker 이미지는 하나의 통짜 파일이 아니라 읽기 전용 레이어를 겹겹이 쌓은 구조입니다. Dockerfile의 명령 하나가 레이어 하나를 만들고, 실행 시 그 위에 쓰기 가능한 컨테이너 레이어가 얹혀 하나의 파일시스템처럼 보입니다. 레이어는 내용이 같으면 이미지끼리 공유되고 캐시되기 때문에, 명령 순서가 곧 빌드 속도와 이미지 용량을 결정합니다.
01 개념 한눈에 보기
Interactive Step-by-StepDocker 이미지는 하나의 통짜 파일이 아닙니다. 읽기 전용 레이어를 겹겹이 쌓은 구조이고, Dockerfile의 명령 하나가 레이어 하나를 만듭니다.
02 쉽게 이해하기
For Everyone투명 필름을 겹쳐 그림을 완성하는 것과 같습니다. 아래 필름(베이스 이미지)은 그대로 두고 위에 새 필름만 얹으며, 겹쳐 보면 한 장의 그림(파일시스템)으로 보입니다. 중간 필름 한 장을 바꾸면 그 위의 필름들은 전부 다시 그려야 합니다.
Dockerfile의 FROM·COPY·RUN 같은 명령이 각각 읽기 전용 레이어를 만들고, 유니온 파일시스템이 이들을 겹쳐 하나로 보여줍니다.
컨테이너를 실행하면 맨 위에 쓰기 가능한 레이어가 추가되고, 변경은 전부 여기에만 기록됩니다(Copy-on-Write).
어떤 레이어가 바뀌면 그 위 레이어의 캐시는 모두 무효화되므로, 자주 안 바뀌는 것(의존성 설치)을 아래에, 자주 바뀌는 것(앱 소스)을 위에 두는 것이 핵심입니다.
- –Dockerfile 명령 순서 최적화
- –빌드 캐시 적중률 높이기
- –이미지 용량 줄이기
- –여러 이미지가 베이스 레이어를 공유하는 원리 이해
03 자주 묻는 질문
FAQ이미지 레이어 (Image Layers)란 무엇인가요?+
Docker 이미지는 하나의 통짜 파일이 아니라 읽기 전용 레이어를 겹겹이 쌓은 구조입니다. Dockerfile의 명령 하나가 레이어 하나를 만들고, 실행 시 그 위에 쓰기 가능한 컨테이너 레이어가 얹혀 하나의 파일시스템처럼 보입니다. 레이어는 내용이 같으면 이미지끼리 공유되고 캐시되기 때문에, 명령 순서가 곧 빌드 속도와 이미지 용량을 결정합니다.
이미지 레이어 (Image Layers)은(는) 어디에 사용하나요?+
Dockerfile 명령 순서 최적화, 빌드 캐시 적중률 높이기, 이미지 용량 줄이기, 여러 이미지가 베이스 레이어를 공유하는 원리 이해
이미지 레이어 (Image Layers)를 쉽게 비유하면?+
투명 필름을 겹쳐 그림을 완성하는 것과 같습니다. 아래 필름(베이스 이미지)은 그대로 두고 위에 새 필름만 얹으며, 겹쳐 보면 한 장의 그림(파일시스템)으로 보입니다. 중간 필름 한 장을 바꾸면 그 위의 필름들은 전부 다시 그려야 합니다.
