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
'[Tool] > [Docker]' 카테고리의 다른 글
[Docker] Docker Hub (0) | 2024.04.28 |
---|---|
[Docker] 원티드 백엔드 챌린지 4월 (4/4회) (0) | 2024.04.12 |
[Docker] 원티드 백엔드 챌린지 4월 (3/4회) (0) | 2024.04.12 |
[Docker] 원티드 백엔드 챌린지 4월 (2/4회) (0) | 2024.04.12 |
[Docker] 원티드 백엔드 챌린지 4월 (1/4회) (0) | 2024.04.12 |