컨테이너 이미지는 여러 층으로 구성되어 있음
그러한 레이어들은 한 번 만들어지고 나면 불변성을 지님. 그렇다면, 불변성은 어떤 의미를 가지는 걸까? 레이어들은 컨테이너가 사용하는 파일 시스템을 만드는 데에 어떻게 사용될까?
각 레이어는 파일 시스템 변화(CRUD)의 집합(set)을 포함하는 이미지
이론상으로의 구조를 살펴보자면 다음과 같음 :
이러한 구조는, 이미지들 사이에 재사용이 가능하다는 장점을 가짐. 예를 들어, 또 다른 파이썬 앱을 만들어야하는 경우, layer 구조(layering)를 가지기 때문에, 손쉽게 파이썬 기반의 동일 구조를 구축 가능. 이는 “빠른 빌드 & 스토리지 사용량 및 이미지들을 배포하는 데 필요한 대역폭(bandwith) 감소” 라는 이점을 줌.
위 예시의 이미지 레이어링은 다음과 비슷하다고 말할 수 있음 :
레이어들은 우리가 다른 사람들의 기본 레이어들을 재사용함으로써 빠른 확장이 가능함. 이후 우리는 그저 앱의 데이터들만 추가해주면 됨
레이어링은 content-addressable storage & union filesystem을 통해 가능. 작동 방식은 다음과 같음 :