본문 바로가기

[Tool]/[Docker]

[Docker] Dockerfile

728x90
반응형

Dockerfile

도커 파일은 도커 이미지(Docker Image)를 만들기 위한 설정 파일이다.

Dockerfile 구성요소

FROM

빌드할 베이스 이미지를 지정한다. 이미지가 로컬에 없으면 도커 허브에서 해당 이미지를 검색한 후 설치한다.

예) FROM ubuntu:latest

RUN

컨테이너에서 실행할 명령어를 지정한다. 보통 컨테이너에 필요한 라이브러리를 다운받는 명령어나 디렉토리를 만드는 명령어를 지정한다.

예) RUN apt-get update

ADD

컨테이너에서 배치할 파일이나 디렉토리를 지정한다. 현재 디렉토리에 위치한 파일을 컨테이너의 루트 디렉토리로 배치한다.

CMD

컨테이너가 시작할 때 실행할 명령어를 지정한다. RUN은 이미지를 빌드할 때 실행되고, CMD는 이미 빌드 된 이미지가 시작할 때 실행된다.

ENTRYPOINT

CMD에서는 param 값을 대체할 수 있지만 ENTRYPOINT는 불가능하다. 즉 항상 실행된다.

LABEL

key-value 형식의 메타데이터를 이미지에 추가한다.

ENV

LABEL과 동일하지만 메타데이터 대신 환경변수를 설정한다.

VOLUME

컨테이너 내의 특정 디렉토리를 지정한다. 해당 디렉토리를 외부 경로에 마운트되어 컨테이너가 삭제되어도 해당 디렉토리의 정보는 보존될 수 있다. 외부 경로란 HOST OS의 /var/lib/docker/volumns 경로를 의미한다.

 

Dockerfile 생성

Dockerfile은 기본적으로 하나의 디렉토리 안에 하나씩 생성할 수 있다.

파일명은 Dockerfile 또는 dockerfile로 해야 인식된다.

 

도커 명령어 각 한 줄을 '레이어'라고 한다.

레이어가 늘어나면 캐시가 쌓이고 바뀐 레이어만 업데이트 한다.

만약 추가/수정이 일어난다면 낮은 레이어에서 하는게 좋다.

중간에 끼워넣게 되면 아래에 있는 레이어는 새로 업데이트 되므로 시간이 오래 걸린다.

 


Reference

https://devlog-wjdrbs96.tistory.com/296

https://kkoon9.tistory.com/397

반응형