이미지의 레이어드 아키텍쳐

wangjh789·2022년 8월 24일
0

docker

목록 보기
2/25

이미지는 레이어 기반이다.
이미지를 빌드하거나 다시 빌디할 때 변경된 부분의 명령과 그 이후의 모든 명령이 재평가 된다.
만일 동일한 이미지를 재빌드 할때 도커는 캐쉬를 사용해 빠르게 빌드한다.

도커는 도커파일의 모든 명령 결과를 캐쉬하고 다시 명령을 수행할 필요가 없을 때 캐쉬된 결과를 사용한다.이를 레이어드 아키텍쳐 기반이라고 한다.

이미지는 컨테이너의 청사진이자 템플릿이다.
이미지의 모든 명령은 캐시 가능한 레이어를 생성합니다 레이어는 이미지 재구축 및 공유를 돕는다.

명령어 3이 변경되었다면 명령어3을 포함한 그 이후 명령어를 캐쉬할 수 없어 명령을 수행한다.
도커는 다시 실행해야 하는 항목만 다시 빌드해 다시 실행해 이미지 생성 속도를 높이기 위해 존재한다.

FROM node

WORKDIR /app

RUN npm install    // 패키지.json이 변경되지 않음

COPY . /app

EXPOSE 80

CMD ["node","server.js"]

위 사실을 통해서 도커파일 최적화를 수행할 수 있다. 종속성과는 상관없는 server.js 만 변경되었을 때 npm install을 수행할 필요가 없다. 그렇기 때문에 RUN 과 COPY의 순서를 바꿔주는 것만으로도 최적화가 된다.
-> 명령어 순서도 생각해서 작성해야 한다.

profile
기록

0개의 댓글