[도커 기초 시리즈 포스팅]
[Docker] 기초 시리즈 (1) 도커의 개념과 사용이유
[Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치
[Docker] 기초 시리즈 (3) 이미지와 컨테이너 관계, 도커 아키텍처
[Docker] 기초 시리즈 (4) 도커 이미지의 구조 (Now)
[Docker] 기초 시리즈 (5) 도커 이미지 다루기 - Docker Hub(Registry)
[Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성
[Docker] 기초 시리즈 (7) 자주 사용하는 Dockerfile 명령어
[Docker] 기초 시리즈 (8) 자주 사용하는 도커 명령어 모음
[Docker] 기초 시리즈 (9) 도커 컨테이너 - 개념, 기본 사용법
[Docker] 기초 시리즈 (10) 도커 컨테이너 - Volume 관리
❑ 도커 이미지의 구조
1) 도커 이미지는 'Layer 적층식 아키텍처'를 갖는다
- 도커 이미지는 Layer 적층식 아키텍처 기반으로 만들어진다.
- 레이어의 계층(hierarchy)은 도커 이미지 라이프사이클 관리를 위한 핵심이며, 가장 자주 변경되는 레이어를 가능한 최상위 레이어로 구성해야 한다. 특정 레이어를 수정하면 도커는 해당 레이어로부터 빌드된 모든 레이어를 재구성하기 때문이다.
- 이미지는 read-only file로 실제 하드웨어에 저장되어 있다. 레이어 역시 하나의 파일로서 존재하므로 도커 이미지 하나에 여러 개의 레이어 파일이 존재할 수 있다
- 예시 해석
- 위의 예시 그림에서 ubuntu, nginx, web app 세 개의 도커 이미지가 있다. nginx는 ubuntu 이미지를 기반으로, web app은 nginx 이미지를 기반으로 만들어졌다.
- ubuntu 이미지 기준으로 Layer A가 가장 오래된 변경사항이고, 그 다음 변경사항이 기록된 Layer B, C가 차례대로 기록된다.
2) Layer 정보 확인
도커 이미지 Layer 정보 확인
$ docker image inspect {Image 이름}:{tag}
- "RootFS" > "Layers"를 확인한다
도커 이미지 Layer 저장 위치
/var/lib/docker/overlay2
[참고] Container Layer
- 도커는 이미지로부터 컨테이너를 실행시키면 Contatiner Layer라고도 부르는 R/W layer를 추가해 컨테이너 runtime동안 발생하는 변경사항을 기록한다. (Read/Writer가 가능하므로 R/W layer)
- 컨테이너가 삭제될 때 기록된 변경사항이 삭제되므로 보존하고 싶다면 docker commit 명령어를 통해 변경사항이 반영된 이미지로 생성해야 한다.
- 예시 해석
- web app 이미지로 생성했기 때문에 'web app image layers'가 가장 아래에 쌓이며, 이미지의 레이어이므로 Read-Only 속성을 갖는다.
- 컨테이너에 변경사항이 생길 때 마다 컨테이너 레이어(R/W layer)가 web app image layers 위에 쌓인다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성 (0) | 2022.04.30 |
---|---|
[Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치 (0) | 2022.04.30 |
[Docker] 기초 시리즈 (3) 이미지와 컨테이너 관계, 도커 아키텍처 (0) | 2021.12.30 |
[Docker] 가상화의 등장 배경과 VM(Virtual Machine) (0) | 2021.12.28 |
[Docker] 기초 시리즈 (1) 도커의 개념과 사용이유 (0) | 2021.12.15 |