[docker] docker 볼륨 - Overlay2
카테고리: docker
태그: docker
🎯목표
- overlay2 드라이버 작동 방식
- 이미지 및 컨테이너 레이어
overlay2 드라이버 작동 방식

lowerdir: 이미지 레이어upperdir: 쓰기 가능 레이어 (컨테이너 레이어)merged: overlay 파일 시스템 (Union 파일 시스템)
Note:
도커에서 이미지 레이어와 컨테이너 레이어가 동일한 파일을 포함하는 경우 컨테이너 레이어의 파일이 merged 파일 시스템에 포함됩니다.
Union 파일 시스템 특징
- Union 파일 시스템은 여러 개의 파일 시스템을 하나로 합쳐서 마운트합니다.
- Union 파일 시스템은 CoW입니다. 읽기 전용에 대한 쓰기 발생 시 복사본을 생성하여 수정합니다.
이미지 및 컨테이너 레이어
$ ls -l /var/lib/docker/overlay2
drwx--x--- 3 root root 47 Jan 9 12:33 102808657dfeea90ce1d592946d8f363897da5d7181be03d95c0e3e35704fe5e
drwx--x--- 4 root root 72 Jan 9 12:33 1857fdd0a2ded75dc54c740fb66651283cf151bd50d4520471ae7535a2de940b
drwx--x--- 4 root root 55 Jan 9 12:33 1dee93b0c934fbcb6d7119dcbe4cb4c55fe57587cddc77c54497f6c3e37b9e9b
drwx--x--- 4 root root 72 Jan 9 12:33 b8bdb4998a0fb2be7b1261238bfadcf700336f3525da1b8e4035ab8947103271
drwx--x--- 4 root root 72 Jan 9 12:36 b952dc00632ddb8f08ae8155e1d3b2123b87feec74c21db76f0d7956a33bcd76
drwx--x--- 4 root root 72 Jan 9 12:33 76dea8a86706871d80b8ab74d92b63e5ab0a5412f2e2d11346923e7b705c7499
drwx------ 2 root root 210 Jan 9 12:53 l
1: 디렉터리에는 각 이미지 레이어를 식별할 수 있는 식별자가 심볼릭 링크로 포함되어 있습니다. (이미지 레이어는 최대 128개의 하위 레이어를 지원합니다.)
$ ls /var/lib/docker/overlay2/102808657dfeea90ce1d592946d8f363897da5d7181be03d95c0e3e35704fe5e
diff link
$ cat /var/lib/docker/overlay2/1857fdd0a2ded75dc54c740fb66651283cf151bd50d4520471ae7535a2de940b/link
K5CJMHXTO64J3BPLLERLLOY4SI
$ ls /var/lib/docker/overlay2/1857fdd0a2ded75dc54c740fb66651283cf151bd50d4520471ae7535a2de940b/diff
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
- 베이스 이미지 레이어에는
link파일과diff디렉터리가 있습니다. link: 각 레이어의 식별자 이름이 포함된 파일diff: 각 레이어의 콘텐츠가 포함된 디렉터리
$ ls /var/lib/docker/overlay2/76dea8a86706871d80b8ab74d92b63e5ab0a5412f2e2d11346923e7b705c7499
diff link lower merged work
$ cat /var/lib/docker/overlay2/76dea8a86706871d80b8ab74d92b63e5ab0a5412f2e2d11346923e7b705c7499/lower
1/V5NFXDAPHXF6SXGC53WZV5S6F2
$ ls /var/lib/docker/overlay2/76dea8a86706871d80b8ab74d92b63e5ab0a5412f2e2d11346923e7b705c7499/diff
etc run var
- 베이스 이미지 레이어를 제외한 레이어에는
lower파일과diff,work디렉터리가 포함되어 있습니다. lower: 부모의 레이어 식별자를 나타냅니다.diff: 해당 레이어의 콘텐츠가 포함된 디렉터리입니다.work: OverlayFS 내부적으로 사용하는 디렉터리- 최상위 레이어에는
merged디렉터리가 있습니다. merged: 모든 하위 레이어와 자신의 통합 콘텐츠를 포함하는 디렉터리입니다.
마운트 확인
# 방법 1
$ mount | grep overlay
overlay on /var/lib/docker/overlay2/76dea8a86706871d80b8ab74d92b63e5ab0a5412f2e2d11346923e7b705c7499/merged type overlay (rw,relatime,
lowerdir=/var/lib/docker/overlay2/l/CNAJXREZR2DBWFDJANIJZ5ZQJ7:/var/lib/docker/overlay2/l/2G4XVVPSPZGYGP3V6KN2EIDMQP:/var/lib/docker/overlay2/l/V5NFXDAPHXF6SXGC53WZV5S6F2:/var/lib/docker/overlay2/l/67VROYPCTKPMALRJZIB5NH72UL:/var/lib/docker/overlay2/l/CBWSK4KYN3VQGUAQKOT4SBOGTG:/var/lib/docker/overlay2/l/YDKI4F62HIXJWM3JC2JAW6ERXJ:/var/lib/docker/overlay2/l/5YPHV6STYICUY5QKXJPUJTT6MQ,
upperdir=/var/lib/docker/overlay2/76dea8a86706871d80b8ab74d92b63e5ab0a5412f2e2d11346923e7b705c7499/diff,
workdir=/var/lib/docker/overlay2/76dea8a86706871d80b8ab74d92b63e5ab0a5412f2e2d11346923e7b705c7499/work
📌출처
👍 개인 공부 기록용 블로그입니다. 오류나 조언이 있으시면 언제든지 댓글 혹은 메일로 남겨주시면 감사하겠습니다! 😄
댓글남기기