첫 번째 장점은 표준화 어떤 운영체제를 사용하든, 그리고 로컬 컴퓨터에 어떤 도구를 설치했는지와 상관없이 모든 빌드 과정은 도커 컨테이너 내부에서 이루어진다. 실무에 적용한다면 신규 개발자의 적응 기간이나 빌드 서버의 관리 부담, 혹은 개발자 간 도구 버전 차이로 인한 빌드 실패를 크게 줄일 수 있다.
두 번째 장점은 성능 향상 멀티 스테이지 빌드의 각 단계는 자신만의 캐시를 따로 갖는다. 처음에 Dockerfile 스크립트를 세심하게 최적화해서 작성한다면 이후로 캐시 재사용을 통해 90% 이상의 빌드 단계에서 시간을 절약할 수 있다.
세 번째 장점은 이미지를 크기 축소
최종 산출물인 이미지에 불필요한 도구는 빼버릴 수 있다.
좋은 예로 curl
, 파일 다운로드를 빌드 초기 단계에 모아 놓는다면 최종 이미지에 curl을 포함시키지 않아도 된다.
이런 방법으로 이미지 크기를 줄여서 애플리케이션의 시작 시간을 단축할 수 있으며, 애플리케이션의 의존 모듈 자체를 줄여 취약점을 이용한 외부 공격의 가능성도 최대한 차단할 수 있다.