본문 바로가기
DevOps/Docker

[Docker] : 캐시를 이용한 이미지 빌드

by 오주현 2022. 2. 24.
반응형

한 번 이미지 빌드를 마치고 재진행하면 이전 이미지 빌드에서 사용했던 캐시를 사용한다.

 

vi Dockerfile2

FROM ubuntu:14.04
MAINTAINER alicek106
LABEL "purpose"="practice"
RUN apt-get update

Dockerfile2로 만들어 봤다.

 

docker build -f Dockerfile2 -t mycache:0.0 ./

-f 혹은 —file 옵션으로 Dockerfile의 이름을 지정할 수 있다.

 

명령어를 실행하면 Using cache라는 내용과 별도 빌드 진행 과정이 생략되고 이미지가 생성이 되었다. 전에 빌드했던 Dockerfile에 같은 내용이 있다면 build 명령어는 새로 빌드하지 않고 같은 명령어 줄까지 이전에 사용한 이미지 레이어를 활용해 이미지를 생성한다.

 

이미지 빌드 중 오류가 발생하면 build 명령이 중지가 된다. 이경우 남아있는 임시 컨테이너를 삭제시켜야 하는데 docker rmi (이미지ID) 명령어로 삭제할 수 있다. 이미지 ID는 docker images 명령어를 통해 확인할 수 있다.

 

캐시가 필요 없는 경우도 있는데 깃허브 같은 소스코드 저장소에서 git clone 같은 명령어를 통해 빌드할 때가 해당된다. 깃 저장소에서 리비전 관리가 일어나도 매번 빌드를 할 때마다 고정된 소스코드를 사용하게 될 경우 캐시가 필요가 없다.

 

docker build --no-cache -t mybuild:0.0 .

명령어를 통해 기존 빌드에 사용된 캐시를 사용하지 않고 Dockerfile을 처음부터 다시 이미지 레이어로서 빌드할 수 있다.

반응형

댓글