1. 멀티 스테이지 Dockerfile 스크립트 동작 원리
- 여러 개의 BaseImage를 사용하여 docker build를 수행한다.
- 여러 개의 FROM 명령문을 사용한다.
- FROM 키워들르 기준으로 작업공간이 분리되고, 이를 stage라고 한다.
- 그러나 최종 도커 이미지로 생성되는 건 한 장이다.
- Container Image를 만들면서 최종 컨테이너에는 필요 없는 환경을 제거한다.
- 최종 컨테이너 실행 시에는 Build에 사용한 의존 파일들이 모두 삭제된다.
- 빌드는 순차적으로 진행된다.
- 예시로 1단계 빌드에서 텍스트 파일을 생헝하면 2단계 빌드에서는 1단계에서 생성한 텍스트 파일을 복사해 온다.
- 즉, 앞 단계의 산출물을 복사해서 이용한다.
- 따라서 중간에 명령어가 실패하면 전체 빌드가 실패한다.
2. 컨테이너 내에서의 빌드 유용성
- 표준화 : 개발자는 환경을 코드 형태로 정의하고 관리할 수 있어 동일한 환경을 보장받는다.
- 성능 향상 : 빌드 시간이 단축된다. 도커는 빌드 중 캐시된 레이어를 검색하고 이를 재사용한다.
- 이미지 최적화 : 최종 이미지 크기를 줄일 수 있다. 빌드 중 필요하지 않은 도구가 존재하는 경우 해당 단계에서 제거하므로 이미지 크기가 줄어든다.
'Backend > Docker' 카테고리의 다른 글
Te Docker (3) - 실용 도커 기술 (0) | 2024.01.26 |
---|---|
Te Docker (3) - 레지스트리에 이미지 공유 (0) | 2024.01.25 |
Te Docker (3) - Dockerfile과 자바 실습 (0) | 2024.01.25 |
Te Docker (2) - 컨테이너 생성 심화 (2) | 2024.01.24 |
Te Docker (2) - 컨테이너 통신 (1) | 2024.01.24 |