본문 바로가기
Docker & Kubernetes

도커 이미지 저장 구조

by 떡쇠 2025. 1. 12.
반응형
반응형

레이어(Layer) 기반 구조

  • 도커 이미지는 여러 레이어(계층)로 이루어진다.
  • Dockerfile의 각 명령(FROM, RUN, COPY, …)마다 새로운 레이어가 생긴다.
  • 레이어는 불변(Immutable)하고 보통 SHA256 해시값으로 식별된다.

스토리지 드라이버(Storage Driver)

  • 실제 레이어 파일을 디스크에 저장하고 여러 레이어를 합쳐서 하나의 파일시스템처럼 보여주는 기능을 담당한다.
  • 대표적으로 overlay2를 많이 사용하며 /var/lib/docker/overlay2/<해시> 형태로 레이어를 관리한다.

 

메타데이터(DB) 관리

  • 도커 엔진은 어떤 이미지가 어떤 레이어들로 구성되는지, 이미지 이름/태그, 컨테이너 설정을 별도의 내부 DB(메타데이터)로 관리한다.
  • 이 정보와 실제 레이어 파일이 정확히 매칭되어야 컨테이너 생성 및 삭제가 정상적으로 동작한다.

레이어의 장점

  • 중복 제거: 여러 이미지가 같은 레이어를 공유하면 한 번만 저장(또는 다운로드)하면 된다.
  • 캐싱: 빌드 과정에서 변경되지 않은 레이어는 재사용함으로써 빌드 속도를 높일 수 있다.

 

 

주의사항: overlay2 디렉터리 직접 수정 금지

  • /var/lib/docker/overlay2(또는 설정된 Docker Root Dir) 내부의 폴더들을 임의로 삭제/변경하면 메타데이터와 불일치가 생긴다.
  • 이 경우 도커가 이미지를 인식 못하거나 컨테이너 생성에 실패할 수 있으므로 이미지는 반드시 Docker 명령어(docker pull, docker rmi, docker system prune 등)를 통해 관리하는 것이 안전하다.

 

요약

  1. 도커 이미지는 다중 레이어로 구성되며 각 레이어는 해시값으로 식별된다.
  2. 스토리지 드라이버(예: overlay2)를 통해 실제 디렉터리에 레이어들이 저장된다.
  3. **도커 메타데이터(DB)**에는 “이미지 이름/태그”와 “어떤 레이어가 쓰이는지” 등 각종 정보가 기록된다.
  4. overlay2 디렉터리를 직접 만지면 문제 발생 가능성이 높으므로 도커 CLI로만 이미지·레이어를 관리한다.

 

반응형