도커 이미지 레이어 - 2 : Dockerfile과 이미지 레이어 관계
2-1. 도커 이미지 레이어 생성
Dockerfile 명령어 == 이미지 레이어 수
FROM busybox:1.34.1 # [1/2]
RUN echo "helloworld" # [2/2]2-2. docker history로 이미지 레이어 갯수 확인
docker history example:v1example:v1은 총 3개의 레이어로 구성됨busybox이미지 레이어 2개
RUN echo "helloworld"로 생긴 1개

2-3. 이미지 레이어 크기
각 레이어는 최소 0바이트 이상
docker history: empty_layer 포함 모든 레이어 표시docker inspect: empty_layer는 생략 파일 시스템에 변화가 생길 때만 레이어 크기가 커짐
→RUN,COPY,ADD등
컨테이너 파일 시스템에, 영향을 주는 항목들만, 이미지 레이어로 추가한다.
2-4. 이미지 레이어 체인(chain)
레이어는 체인처럼 연결된 구조이다.(부모 → 자식 관계)
- Docker는 새 레이어를 만들 때 이전 레이어를 부모로 참조한다.
- 각 레이어는
parent라는 메타데이터를 통해 상하 관계를 가짐
example:v1레이어 확인

- 현재 도커 내부 디렉토리에는 b737…, ca47… 레이어가 있다.
- b737… 레이어가 ca47… 레이어를 부모로 가지고 있다.

- b737… 레이어가 ca47… 레이어를 부모로 가지고 있다.
2-5. 이미지 ID vs 레이어 ID
도커를 다루다 보면 이미지 ID와 레이어 ID가 혼동될 수 있다.
이미지 ID
전체 이미지의 고유 ID

docker images명령어로 확인한 이미지 ID
/var/lib/docker/.../imagedb/sha256/에 위치한다.
레이어 ID
파일 시스템의 변경사항이 담긴 조각 (diff layer)

/var/lib/docker/.../layerdb/sha256/에 위치한다.
