728x90

 

개요

도커 이미지는 컨테이너를 생성하기 위한 읽기 전용 템플릿(readOnly)입니다. 쉽게 말해 컨테이너의 "설계도" 역할을 하는 것입니다.

 

이 이미지는 생성된 후에는 내용이 변경되지 않는 불변성을 가지고 있으며, 하나의 이미지여러 개의 동일한 컨테이너를 생성할 수 있습니다.

 

이러한 도커 이미지는 레이어(Layer)라는 개념을 통해 관리됩니다. 레이어는 도커 이미지를 구성하는 읽기 전용 파일 시스템으로, 이미지의 효율적인 생성관리를 가능하게 합니다.

 

도커 레이어(Layer)란 ❓

도커 레이어는 도커 이미지를 구성하는 읽기 전용의 파일 시스템입니다.

 

각 레이어는 이전 레이어 위에 쌓이는 형태로 구성되며, Dockerfile의 각 명령어는 새로운 레이어를 생성합니다.

 

Dockerfile의 각 명령어는 개별 레이어를 생성하며, 각 레이어는 이전 레이어와의 차이점만을 저장합니다.

 

도커 레이어(Layer)의 단계별 구성 이해하기

위 이미지는 도커의 레이어 시스템이 어떻게 구축되는지를 단계별로 보여주는 도식입니다. 각 컨테이너가 어떻게 레이어를 쌓아가며 구성되는지 살펴보겠습니다.

첫 번째 컨테이너 - 기본 설정

 

  • 베이스가 되는 Image 1.0 위에 Add Apache 레이어가 추가되어 Image 1.1이 생성 됩니다.
  • 이는 기본 이미지에 Apache 웹 서버를 설치하는 과정을 보여줍니다.

 

두 번째 컨테이너 - Git 추가

 

  • 이전 단계의 Image 1.1을 기반으로 합니다.
  • GIT이라는 새로운 레이어가 추가되어 Image 1.2이 생성됩니다.
  • 이는 Git 버전 관리 시스템이 추가된 것을 의미합니다.

 

세 번째 컨테이너 - 소스 코드 추가

 

  • 이전 단계들의 이미지들을 기반으로 합니다.
  • Add Source 레이어가 최상단에 추가되어 Image 1.3가 생성됩니다.
  • 애플리케이션의 소스 코드가 추가된 최종 상태를 나타냅니다.

정리하자면,

  1. Image 1.0 (기본 이미지)
    • Add Apache = Image 1.1
  2. Image 1.1 (Apache 설치된 이미지)
    • Add GIT = Image 1.2
  3. Image 1.2 (Git이 추가된 이미지)
    • Add Source = Image 1.3

 

 

주목할 점

  1. 각 단계는 이전 단계의 이미지 재사용합니다.
  2. 새로운 레이어는 이전 레이어들 위에 쌓이는 형태로 구성됩니다.
  3. 하위 레이어들은 변경되지 않고 그대로 유지됩니다 (불변성).
  4. 각 변경사항은 새로운 레이어로 추가되어 관리됩니다.

 

도커 레이어(Layer)의 특징

1. 중분적 변경

  • 각 레이어는 이전 레이어로부터의 변경사항만 포함

2. 캐시 활용

  • 동일한 레이어는 재사용되어 빌드 시간 단축

3. 공간 효율성

  • 여러 이미지가 레이어를 공유하여 저장 공간 절약

4. 불변성

  • 한번 생성된 레이어변경되지 않음