Overlay2
는 Docker에서 사용하는 기본 스토리지 드라이버로, Copy-on-Write(COW)를 기반으로 합니다. 여러 레이어를 효율적으로 관리하며, 컨테이너 간 자원 공유와 디스크 공간 절약에 유리합니다.
Docker는 /var/lib/docker/overlay2
디렉터리에 파일 시스템 데이터를 저장합니다.
/var/lib/docker/overlay2/<layer-id>
/var/lib/docker/overlay2/
|-- <layer-id>/
|-- diff/ # 현재 레이어의 변경 파일
|-- lower/ # 부모 레이어 정보
|-- merged/ # 컨테이너가 보는 통합 디렉터리
|-- work/ # 임시 작업 디렉터리
docker run -it --name test-container ubuntu bash
컨테이너가 실행된 후, 관련 파일은 /var/lib/docker/overlay2
에 저장됩니다:
ls /var/lib/docker/overlay2
컨테이너 내부에서 파일 생성:
touch /test-file
호스트에서 생성된 파일 확인:
ls /var/lib/docker/overlay2/<layer-id>/diff
diff
디렉터리에 저장됩니다.Overlay2는 레이어를 공유하여 동일한 이미지를 사용하는 컨테이너 간 중복 데이터를 줄입니다.
docker run -it --name container1 ubuntu bash
docker run -it --name container2 ubuntu bash
docker inspect container1 | grep -i "merged"
docker inspect container2 | grep -i "merged"