이미지 레이어의 기본 구조
컨테이너 이미지는 순서가 정해진 읽기 전용 레이어들의 집합입니다. OCI 이미지 사양에 따르면, 각 레이어는 tar 형식 아카이브로 패키징되며, 상위 레이어와의 상대적 관계에서 파일시스템의 추가, 변경, 삭제를 기록합니다. Dockerfile의 각 빌드 명령어(FROM, COPY, RUN 등)는 새로운 레이어를 생성하므로, 개발자는 Dockerfile 작성 순서와 레이어 구조의 대응 관계를 이해해야 합니다.
레이어 저장 및 참조 메커니즘
이미지 매니페스트는 각 레이어를 콘텐츠 주소화(content-addressable) 방식으로 참조합니다. SHA256 다이제스트를 통해 각 레이어의 무결성을 검증하며, 레이어 크기와 미디어 타입 정보를 포함합니다. 이 구조로 인해 동일한 레이어는 여러 이미지 간에 공유되어 저장소 효율성이 극대화되며, 이미지 풀/푸시 시에는 필요한 레이어만 선택적으로 전송됩니다.
Union 파일시스템과 Copy-on-Write 전략
저장 드라이버(overlay2가 기본값)는 여러 레이어를 Union 파일시스템으로 통합하여 단일 통합 뷰를 제공합니다. 컨테이너 실행 시 이미지 레이어들은 읽기 전용(lowerdir)이 되고, 새로운 쓰기 가능 계층(upperdir)이 생성됩니다. 컨테이너가 기존 파일을 수정할 때는 Copy-on-Write 메커니즘에 의해 하위 레이어의 파일이 쓰기 계층으로 복사된 후 수정되므로, 원본 레이어는 보호되고 디스크 효율성이 유지됩니다.