docker file (도커 파일)
도커 파일은 반드시 FROM
인스트럭션으로 시작해야 한다. 이 인스트럭션은 빌드 작업의 기반이 되는 베이스 이미지를 지정한다. 주석을 달고 싶다면 문장의 첫 글자에 #
을 붙이면 된다. FROM 인스트럭션은 변수도 지원한다. 따라서 유일하게 ARG
만 FROM보다 먼저 나올 수 있다.
도커 파일 인스트럭션
인스트럭션 | 설명 |
---|---|
ADD | 호스트 시스템에 있거나 URL로 지정한 파일을 컨테이너 안에 복사한다 |
CMD | 컨테이너가 생성될 때 이 인스트럭션의 인수로 지정한 커맨드를 실행한다. CMD는 도커 파일에 단 1개만 지정할 수 있다. 여러 개의 CMD 인스트럭션을 지정하면, 가장 마지막에 나온 것만 실행한다. |
ENTRYPOINT | 컨테이너를 구동할 때 실행할 디폴트 실행 파일을 지정한다. 이미지를 실행할 수 있게 만들려면 반드시 지정해야 한다. 이것 대신 CMD를 사용해도 된다. |
ENV | 도커 파일에 환경 변수를 설정한다. 그러면 도커 파일의 인스트럭션에서 사용할 수 있다. 사용 예는 다음과 같다. ENV MySQL_ROOT_PASSWORD mypassword |
EXPOSE | 컨테이너에서 열어둘 포트 번호를 지정한다. |
FROM | 빌드할 이미지의 기반이 되는 베이스 이미지를 지정하다. 도커 파일에서 가장 먼저 나오면서 반드시 지정해야 하는 인스트럭션이다. |
MAINTAINER | 생성된 이미지에 작성자 정보를 설정한다. |
RUN | 인수로 지정한 커맨드를 실행한다. RUN을 실행할 때마다 계층이 하나씩 생성된다. |
USER | 이미지나 (RUN, CMD, ENTRYPOINT 등과 같은) 다른 인스트럭션을 실행할 때 이용할 사용자 이름 또는 ID를 설정한다. |
VOLUME | 컨테이너가 사용하기 위해 호스트 머신에 생성할 공유 볼륨을 지정한다. 여러 개 지정할 수 있다. |
WORKDIR | RUN, CMD, ENTRYPOINT, COPY, ADD 등과 같은 인스트럭션을 실행할 작업 디렉터리를 지정한다. |