busybox:latest 이미지를 통해 위 내용을 짚어보도록 하겠습니다.
image pull
docker pull busybox:latest
inspect를 통해 busybox 이미지 metadata 확인
docker inspect busybox:latest
RootFS.Layers에 sha256으로 시작하는 레이어가 존재함을 확인 가능합니다.
이는 위에서 언급된 Docker layer에 속합니다.
즉, 해당 레이어는 읽기만 가능하기에, 수정이 불가능 합니다.

도커 이미지 레이어의 정보는 일반적으로 /var/lib/docker/image/overlay2/layerdb/sha256 디렉터리에 저장되며, 내부에는 inspect로 확인했던 것과 동일한 layer 정보가 담겨 있습니다.

컨테이너 레이어는 쓰기 작업이 가능하다고 했었으며, 정말 가능한지 컨테이너의 tmp 디렉토리에 간단한 파일을 만드는 실습을 통해서 확인해보도록 하겠습니다.
쉘 사용이 가능하도록 busybox 실행
docker run -it --rm busybox sh
/tmp 로 이동 후, hi.txt 파일 생성

컨테이너를 실행한 터미널은 그대로 둔 상태에서 다른 터미널을 열어, /var/snap/docker/common/var-lib-docker/overlay2 디렉터리로 접근합니다.
접근 시, 아래와 같이 세개의 layer를 확인 가능합니다.

❓그런데, 86bed95... 레이어는 무엇일까?
❗해당 레이어가 바로 컨테이너 레이어입니다.
현재 docker run을 통해서 컨테이너를 실행하고 있기에, 쓰기 작업이 가능한 컨테이너 레이어가 생성되어 있습니다.
86bed95... 컨테이너 레이어에 접근하여 확인 시, hi.txt 파일이 남아있는 것을 확인 가능합니다.

실행 중인 컨테이너 종료 시, 해당 컨테이너 레이어는 사라지게 되며, hi.txt 파일 또한 함께 제거됩니다.
busybox 이미지
├── sha256:068f... ← lowerdir (읽기 전용)
컨테이너 (ID: d756a67a66fe)
├── lowerdir = 이미지(도커) 레이어
├── upperdir = overlay2/86bed95.../diff
└── merged = upper + lower
위 실습을 하다가 흥미로운 점을 발견했습니다.
docker run -it ... 와 같이 interactive 방식으로 컨테이너를 쉘을 사용할 수 있도록 실행한 후, 컨테이너 내부가 아닌, 호스트(외부)의 overlay2 디렉터리의 컨테이너 레이어에 쓰기 작업을 하면 컨테이너 내부에 쓰기 내용이 연동될까? 라는 궁금증이 생겼습니다.
docker run -dit ... 로 실행한다면?
"Docker Layer 실습부분만 읽고 다음에 읽어야지" 라고 생각했는데 어느새 "컨테이너 실행방식" 까지 정독하고 있는 저를 보며 '아 이 블로그 나랑 맞다' 라는 생각이 들었습니다
나머지 섹션도 빨리 읽고 싶네요 항상 좋은 글 감사드립니다