Docker File은 Docker Image를 생성하기 위해 순차적으로 실행되는 스크립트이다.
구성 요소
FROM
: 이미지 생성의 기반이 되는 베이스 이미지를 지정한다.
WORKDIR
: 작업할 디렉토리를 지정한다. 이후의 RUN, CMD, ENTRYPOINT, COPY 명령어는 해당 디렉토리에서 작업된다.
RUN
: docker image가 작동되기 전 실행되는 CMD 명령어이다.
보통 이미지가 빌드되는 과정에서 필요한 작업을 작성한다.
※docker run
명령어로 컨테이너 생성시의 명령문을 작성한다면 작성된 명령문이 우선이기에 dockerfile의 RUN은 무시된다.
COPY - COPY <소스 경로> <도커 이미지 내부 경로>
: Docker 클라이언트의 현재 디렉토리에 image 빌드 파일을 추가한다.
WORKDIR를 별도로 지정했다면 해당 경로로 복사된다.
→ <소스 경로>: 로컬 시스템에 있는 파일 또는 디렉토리의 경로를 지정한다. 이는 Dockerfile이 있는 경로를 기준으로 상대 경로로 지정할 수도 있고, 절대 경로로 지정할 수도 있다.
→ <도커 이미지 내부 경로>: Docker 이미지 내부의 파일이나 디렉토리가 복사될 경로를 지정합니다. 주로 컨테이너 내부의 작업 디렉토리로 지정되는 경우가 많습니다.
CMD
: 컨테이너가 생성될 때 실행되는 명령어이다.(docker run
)
하나의 명령어만 실행되며 여러 줄이라면 마지막 줄만 실행한다.
※docker start
의 명령어로 생성된 컨테이너를 재실행할 때는 실행되지 않는다.
5-1. ENTRYPOINT
: docker start
될 때마다 실행되는 명령어