Docker Image의 상세 구조에 대해서 정리해보겠습니다!
이미지는 크게 3가지 구조로 이루어져 있습니다.
1. 이미지 인덱스 (Image Index)
2. 이미지 매니페스트 (Image Mainfest)
3. 레이어 (Layer)
일반적으로 우리가 이미지를 다운로드 받을때 출력되는 digest가 이미지 인덱스에 해당하게 됩니다.
이 이미지 인덱스는 다수의 이미지 매니페스트로 구성되어 있는데 이때 각 이미지 매니페스트는 다양한 운영체제 및 아키텍쳐에서 해당 이미지를 활용할 수 있게 설정한 값과 다양한 레이어들을 제공합니다.
위 사진은 dockerhub의 python 3.11.6 Image 정보입니다. 각 Digest에 다양한 운영체제 및 아키텍쳐를 제공하는걸 확인할 수 있습니다.
다시 맨 위 사진의 오른쪽 부분을 보게된다면 linux64/amd64에서 작동하는 이미지 매니페스트를 확대한 그림인것을 볼 수 있습니다.
이미지 매니페스트는 설정 파일인 config와 다수의 레이어로 구성되어 있습니다. 이때 각 레이어는 각각의 digest를 가집니다.
위 사진은 python:3.11.6의 이미지 상세 구조 중 이미지 매니페스트 부분 입니다. 이 사진에 나오는걸 확인하면
docker image pull 명령어로 python 이미지를 다운로드한 출력 해시 값이 이미지의 인덱스 값인 것을 알 수 있게됩니다.
위 사진으로 직접적인 출력 digest 값이 어떤 부분에 해당하는지 연결한 그림입니다. 위 사진을 통해 도커 이미지를 다운로드할 때 어떤 레이어를 다운로드 하는지 확인할 수 있음을 알 수 있습니다.
출처 : https://m.yes24.com/Goods/Detail/126115324 (한 권으로 배우는 도커 & 쿠버네티스)
'DevOps > Docker' 카테고리의 다른 글
Container 파일시스템 (1) | 2024.09.18 |
---|---|
chroot - 컨테이너를 직접 만들어보기! (1) | 2024.09.15 |
Docker Compose (2) | 2024.02.06 |
컨테이너 교차 통신, Docker로 다중 어플리케이션 구성하기 (0) | 2024.02.06 |
Docker 이미지와 컨테이너 내부의 데이터 관리 방법 (1) | 2024.02.06 |