Dockerfile Syntax
syntax |
---|
FROM |
RUN |
WORKDIR |
COPY |
ADD |
CMD |
ENTRYPOINT |
ENV |
ARG |
EXPOSE |
VOLUME |
USER |
LABEL |
SHELL |
STOPSIGNAL |
⚡️ Description
FROM
베이스 이미지 지정한다.
Docker Hub 에서 원하는 이미지를 찾을 수 있다.
RUN
Dockerfile에서 이미지 빌드 과정 중에 실행된다.
각 RUN 명령어마다 새로운 레이어가 생성되므로, 캐시를 효과적으로 사용하여 빌드 속도를 높일 수 있다.
WORKDIR
명령이 실행될 작업 디렉토리를 지정한다.
해당 디렉토리가 없다면 생성된다.
COPY
호스트 머신의 파일을 컨테이너 내부로 복사한다.
ADD
COPY와 유사하나 추가적인 기능 제공한다.
로컬 파일이나 URL 복사할 수 있으며, 압축 파일 자동으로 해제하고 원격 파일 다운로드 할 수 있다.
CMD
컨테이너가 시작될 때 실행하는 명령을 설정한다.
도커 파일에서 한 번만 사용해야 한다.
동시에 여러 개의 CMD 지시문을 사용할 수 있지만, 마지막 CMD만 적용된다.
ENTRYPOINT
컨테이너가 시작될 때 실행할 실행 파일 또는 스크립트를 설정한다.
CMD와 달리 항상 실행되며, CMD와 함께 사용될 경우에는 CMD의 인자로 사용된다.
ENV
환경 변수를 설정한다.
ARG
빌드 중에 전달되는 인수를 정의한다.
EXPOSE
컨테이너가 노출할 포트 설정한다.
VOLUME
호스트 머신과 컨테이너 간에 볼륨을 공유할 수 있도록 설정한다.
USER
컨테이너가 실행될 사용자를 설정한다.
HEALTHCHECK
컨테이너의 상태를 확인하는 방법을 설정한다.
LABEL
이미지에 메타데이터를 추가
LABEL version="1.0"
SHELL
기본 쉘 지정
SHELL ["/bin/bash", "-c"]
STOPSIGNAL
컨테이너가 종료될 때 보내질 시그널을 지정
STOPSIGNAL SIGTERM
실습
Multi-Stage Build
Build Docker image with Multi-Stage
RUN, CMD, ENTRYPOINT 차이점과 쓰임새
syntax | desc |
---|---|
RUN | 이미지 빌드 중에 실행할 명령어 설정 |
CMD | 컨테이너가 시작될 때 실행할 기본 명령 설정 |
ENTRYPOINT | 컨테이너가 시작될 때 실행할 실행 파일 또는 스크립트를 설정하며, CMD명령어의 인자로 사용될 수 있음 |
Last updated