Docker

도커 이미지와 레이어 기반 아키텍처

Yonggyu 2023. 10. 25. 16:42
반응형



도커 이미지의 핵심 특징

1. 읽기 전용
도커 이미지는 읽기 전용입니다. 

이미지가 빌드되면 내부 파일 시스템과 구성은 불변하게 됩니다. 변경할 수 없습니다.

2. 레이어 기반
도커 이미지는 여러 레이어로 구성됩니다.

이 레이어들은 명령어를 기반으로 생성되며, 변경 사항을 효율적으로 관리합니다.

3. 캐시
도커는 명령어의 결과를 캐싱하여 이미지 빌드 속도를 향상시킵니다.

변경된 명령어 이후에는 해당 명령부터 다시 빌드하며, 이전 결과를 캐싱하여 빌드 속도를 향상 시킵니다.

 


이미지 레이어
이미지의 각 레이어는 도커 파일에서 정의한 명령어와 명령어 이후의 파일 시스템 변경 사항을 나타냅니다. 모든 명령어와 파일 변경 사항은 이미지 레이어로 포장됩니다.

 


이미지 레이어의 생성
도커 이미지를 빌드할 때마다 모든 명령어와 파일 변경 사항은 이미지의 각 레이어로 기록됩니다.
동일한 명령어 및 변경 사항은 캐시로 저장되어 빠르게 재사용됩니다.

 


이미지 업데이트
이미지 내부에 소스 코드를 복사하는 명령은 해당 코드의 스냅샷을 가져옵니다.
이미지를 다시 빌드하면 모든 레이어가 다시 생성되며 변경된 부분 이후의 모든 명령어가 재평가됩니다.



이미지 업데이트와 최적화

이미지 내의 소스 코드를 업데이트하려면 이미지를 다시 빌드해야 합니다. 그러나 이미지 빌드를 최적화하기 위해 다음 방법을 고려할 수 있습니다.


1. 패키지 의존성 관리
package.json 등의 패키지 의존성 파일을 먼저 복사하고 npm install을 실행하여 의존성을 미리 설치합니다. 이로써 레이어 중복을 최소화하고 이미지 빌드를 최적화할 수 있습니다.


2. 이미지 캐싱
이미지 빌드 과정에서 캐시를 활용하여 이전 결과를 재사용합니다. 변경된 명령어 이후의 캐시 레이어부터만 다시 실행됩니다.


3. 이미지 업데이트 주기
이미지를 자주 업데이트하지 않는 방법을 고려하여 이미지 빌드 속도를 최적화합니다.


도커의 주요 핵심은 코드와 환경을 격리된 컨테이너 내에 포함하고, 이를 활용하여 애플리케이션을 실행하는 것입니다. 이렇게 함으로써 도커는 효율적인 관리와 배포를 가능하게 합니다.






728x90
반응형

'Docker' 카테고리의 다른 글

도커 이미지 공유하기  (2) 2023.10.26
도커 이미지 & 컨테이너 관리  (0) 2023.10.25
도커 이미지와 컨테이너 : 기본 개념과 빌드  (2) 2023.10.24
도커 (Docker) 개념  (2) 2023.10.24