Storage in Docker
Filesystem
처음 도커를 설치하면 /var/lib/docker 아래에 다음과 같은 디렉토리 구조를 만들 것이다.
- aufs, containers, image, volume 등 여러 개의 디렉토리가 있다.
- Docker는 기본적으로 모든 데이터를 저장합니다.
- 컨테이너와 관련된 모든 파일은 컨테이너 디렉토리 아래에 저장되고 이미지와 관련된 파일은 이미지 디렉토리 아래에 저장됩니다. Docker 컨테이너에 의해 생성된 모든 볼륨은 볼륨 디렉토리 아래에 생성된다.
지금은 Docker의 이미지와 컨테이너의 파일을 저장하는 위치와 형식을 알아보도록 하겠다.
먼저 도커의 계층형 아키텍쳐를 이해해야 한다.
Layered Architecture
- 도커가 이미지를 빌드할때 아키텍처에서 이미지를 빌드한다. Docker 파일의 각 명령행은 이전 레이어의 변경 사항만으로 Docker 이미지에 새 레이어를 만든다.
- 아래에 볼 수 있듯이 계층 1은 우분투 기본 계층이고 계층 2는 패키지 설치, 계층 3은 파이썬 패키지 설치, 계층 4는 소스 코드 업데이트, 계층 5는 이미지의 진입점을 업데이트한다. 각 계층은 이전 계층의 변경사항만 저장하기 때문이다. 또한 크기에도 반영되어 있다.
이미지를 빌드할 때 도커는 캐시에서 첫 번째 응용 프로그램을 위해 빌드한 것과 동일한 세 개의 레이어를 재사용하는 대신 처음 세 개의 레이어를 빌드하지 않는다. 새 소스와 새 진입점이 있는 마지막 두 도면층만 작성한다.