[Docker] Docker Image 구조

김선형·2025년 8월 22일

Docker

목록 보기
2/6

컨테이너 이미지 구조

컨테이너를 실행할 때 필요한 파일 시스템은 파일 내용과 메타 정보를 포함하는 이미지 레이어의 집합체이다. 레이어는 부모와 자식 관계로, 변경분만 기록하고 Read Only이다.
공통된 레이어를 이미지 간에 공유함으로써, 디스크 용량을 줄이고 높은 이동성을 실현한다.

Docker 이미지 구조

Docker 이미지는 실행을 위한 파일들을 계층적으로 묶어서 제공하는 방식으로 tar 묶음과 유사하다. 아래 명령어를 통해 이미지의 내부 구조를 확인할 수 있다.

#Docker 이미지 저장
docker save [imagename] -o [imagename.tar]

#이미지 저장 디렉토리 생성
mkdir [dir]
mv [imagename.tar] [./dir]
cd [./dir]

#이미지 풀기
tar xvf [imagename.tar]
ls

#컨테이너 이미지 계층 확인
cat manifest.json | jq

✏️ tar (Tape ARchiver)?
여러 개의 파일과 디렉토리를 하나의 파일로 묶거나 풀 때 사용하는 명령

이미지 추가와 삭제에 따른 스토리지 용량 확보

Docker는 이미지를 생성할 때 만드는 manifest 파일의 명시된 내용을 사용하여 어떤 이미지를 사용하는지 알린다. 이를 통해, 다양한 Docker를 사용할 때 중복된 이미지를 생성하거나 삭제할 때 중복된 이미지에 대해서는 삭제 및 생성을 하지 않는다.

Docker Image Remove/Download

즉 위와 같은 상황에서, 이미지 A를 지운다 하더라도 이미지 B에서 레이어 A, B, C를 사용하고 있기 때문에 레이어 A, B, C는 지워지지 않는다. 또한 이미지 C, D, E를 새로 다운로드할 때, 이미 존재하는 레이어 A, B는 새로 다운받지 않는다.

profile
선형의 비선형적 기록 🐜

0개의 댓글